Merge remote-tracking branch 'origin/master'
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywDevice/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywDevice/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywDevice/create', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywDevice/updateById', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/ywDevice/delete/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
| | | return request.get('/visitsAdmin/cloudService/business/ywDevice/delete/batch', { |
| | | params: { |
| | | ids |
| | | } |
| | | }) |
| | | } |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢ |
| | | export function getFetchList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/list', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywPatrolPoint/exportExcel', data, { |
| | |
| | | .green{ |
| | | color: #75a236; |
| | | } |
| | | .gary{ |
| | | color: #aaaaaa; |
| | | } |
| | | .cu{ |
| | | cursor: pointer; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Index from './src' |
| | | |
| | | export default Index |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow title="鿩客æ·" width="1000px" @close="close" :visible.sync="isShowMemberList"> |
| | | <div> |
| | | <div class="df_ac mb20"> |
| | | <el-input v-model="modalSearchValue" placeholder="请è¾å
¥å®¢æ·åç§°" class="w400" @keyup.enter.native="queryList"> |
| | | <!-- <el-button slot="append" icon="el-icon-search" @click="queryList()" /> --> |
| | | </el-input> |
| | | <el-button class="ml10" type="primary" @click="queryList()">æ¥è¯¢</el-button> |
| | | </div> |
| | | <el-table ref="table" v-loading="listLoading" :data="list" element-loading-text="Loading" border fit |
| | | :header-row-class-name="'table-header'" class="doumee-element-table doumee-element-tableb" |
| | | @row-click="rowClick"> |
| | | |
| | | <el-table-column align="center" label="客æ·ç±»å" prop="cardName" show-overflow-tooltip min-width="80" /> |
| | | <el-table-column align="center" label="客æ·åç§°" show-overflow-tooltip prop="remainingMoney" min-width="80" /> |
| | | <el-table-column align="center" label="è系人" show-overflow-tooltip prop="remainingGiveMoney" min-width="80" /> |
| | | <el-table-column label="èç³»çµè¯" prop="createTime" min-width="100" align="center" /> |
| | | <el-table-column label="ç»ä¸ä¿¡ç¨ä»£ç " prop="createTime" min-width="120" align="center" /> |
| | | <el-table-column label="è¥ä¸æé" prop="createTime" min-width="100" align="center" /> |
| | | <el-table-column label="é»è®¤å票类å" prop="createTime" min-width="100" align="center" /> |
| | | </el-table> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import { memberList, memberDetailInfo } from '@/api' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import dayjs from 'dayjs' |
| | | // import { debounce } from '@/utils/debounce' |
| | | |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | GlobalWindow |
| | | }, |
| | | props: { |
| | | isShowChooseBtn: { |
| | | type: Boolean, |
| | | default: () => true |
| | | }, |
| | | type: { // (10: ååææ£ 20: è®¢åºææ£ 30: é¨ç¥¨ææ£ 40: å¥é¤ææ£ 50ï¼æ´»å¨ææ£ 60ï¼è¯¾ç¨ææ£) |
| | | type: String, |
| | | default: 'default' |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | searchValue: '', |
| | | isShowMemberList: false, |
| | | modalSearchValue: '', |
| | | list: [], |
| | | totalCount: 0, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | listLoading: false, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | // (10: ååææ£ 20: è®¢åºææ£ 30: é¨ç¥¨ææ£ 40: å¥é¤ææ£ 50ï¼æ´»å¨ææ£ 60ï¼è¯¾ç¨ææ£) |
| | | }, |
| | | methods: { |
| | | clearSearch() { |
| | | this.searchValue = '' |
| | | this.modalSearchValue = '' |
| | | }, |
| | | handleMemberSelect(item) { |
| | | memberDetailInfo({ param: { memberId: item.id } }).then((res) => { |
| | | if (res.errorCode !== '000000') return |
| | | const obj = res.record || {} |
| | | obj.searchValue = this.searchValue |
| | | this.$emit('select', obj) |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.searchValue = '' |
| | | setTimeout(() => { |
| | | this.$refs.searchValueRef.focus() |
| | | }) |
| | | this.$emit('clear') |
| | | }, |
| | | rowClick(item) { |
| | | memberDetailInfo({ param: { memberId: item.id } }).then((res) => { |
| | | if (res.errorCode !== '000000') return |
| | | const obj = res.record || {} |
| | | this.searchValue = obj.nickName |
| | | obj.searchValue = this.modalSearchValue |
| | | if (item.phone) { |
| | | this.searchValue += '-' + item.phone |
| | | } |
| | | if (item.number) { |
| | | this.searchValue += 'ï¼' + item.number + 'ï¼' |
| | | } |
| | | this.$emit('select', obj) |
| | | }) |
| | | this.isShowMemberList = false |
| | | }, |
| | | getList() { |
| | | const { pagination, modalSearchValue } = this |
| | | this.listLoading = true |
| | | memberList({ pagination, param: { keyword: modalSearchValue } }).then((res) => { |
| | | this.listLoading = false |
| | | if (res.errorCode !== '000000') return |
| | | this.list = res.recordList |
| | | this.pagination.total = res.total || 0 |
| | | this.totalCount = res.totalCount |
| | | }, () => { |
| | | this.listLoading = false |
| | | }) |
| | | }, |
| | | openModal() { |
| | | this.modalSearchValue = '' |
| | | // this.queryList() |
| | | this.isShowMemberList = true |
| | | }, |
| | | queryList() { |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | currentChange(val) { |
| | | this.pagination.page = val |
| | | this.getList() |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | this.getList() |
| | | }, |
| | | close() { |
| | | this.isShowMemberList = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .member_search_wrap { |
| | | display: flex; |
| | | |
| | | ::v-deep .el-input__validateIcon { |
| | | display: none !important; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="doumee-filter"> |
| | | <el-form inline label-suffix="ï¼" @submit.native.prevent> |
| | | <template v-for="(item, index) in queryFormConfig.formItems"> |
| | | <el-form-item v-if="item.type === 'input' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'input' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <el-input v-model="searchForm[item.filed]" |
| | | :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" |
| | | :placeholder="item.label" class="w200" |
| | | @change="changeForm(item.filed)" @keyup.enter.native="handlekeyup(item.keyup || false)" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'moneySelect' && (showZk || index < listLength)" :key="item.label"> |
| | | <el-form-item v-if="item.type === 'moneySelect' && (showZk || index < listLength)" :label="item.label" :key="item.label"> |
| | | <el-input v-model="searchForm[item.filedStrt]" |
| | | :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" |
| | | :placeholder="item.start" style="width: 150px" /> |
| | |
| | | :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" |
| | | :placeholder="item.end" style="width: 150px" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'select' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'select' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <el-select v-model="searchForm[item.filed]" :filterable="item.filterable || true" |
| | | :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" |
| | | :placeholder="item.label" class="w200" |
| | |
| | | :label="item.labelCode ? opt[item.labelCode] : opt.label" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'date' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'date' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <el-date-picker v-model="searchForm[item.filed]" type="date" value-format="yyyy-MM-dd" class="w200" |
| | | :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" |
| | | :placeholder="item.label" :picker-options="item.pickerOptions || {}" |
| | | @change="changeForm(item.filed)" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'daterange' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'daterange' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <el-date-picker v-model="searchForm[item.filed]" value-format="yyyy-MM-dd" type="daterange" |
| | | range-separator="è³" |
| | | :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" |
| | | :start-placeholder="item.start || ''" :end-placeholder="item.end || ''" |
| | | :picker-options="item.pickerOptions || {}" class="w400" @change="changeForm(item.filed)" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'timePicker' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'timePicker' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <el-time-picker v-model="searchForm[item.filed]" is-range range-separator="è³" format="HH:mm" |
| | | value-format="HH:mm" start-placeholder="å¼å§æ¶é´" end-placeholder="ç»ææ¶é´" placeholder="éæ©æ¶é´èå´" class="w400" |
| | | @change="changeForm(item.filed)" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'datetimerange' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'datetimerange' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <el-date-picker v-model="searchForm[item.filed]" format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" :default-time="['00:00:00', '23:59:59']" |
| | | :picker-options="item.pickerOptions || pickerOptions" range-separator="è³" |
| | |
| | | :start-placeholder="item.start || 'å¼å§æ¶é´'" :end-placeholder="item.end || 'ç»ææ¶é´'" class="w400" |
| | | @change="changeForm(item.filed)" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="item.type === 'slot' && (showZk || index < listLength)" :key="item.filed"> |
| | | <el-form-item v-if="item.type === 'slot' && (showZk || index < listLength)" :label="item.label" :key="item.filed"> |
| | | <slot :name="item.filed" /> |
| | | </el-form-item> |
| | | </template> |
| | |
| | | <template> |
| | | <TableLayout> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']"> |
| | | <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:category:create']">æ°å»º</el-button></li> |
| | | </ul> |
| | | <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search" |
| | | :data="dataList" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" label="å·¥ååºå" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="parentName" label="æå±åç±»" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="æä½" |
| | | min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryWindow v-if="isShowEdit" @close="isShowEdit = false" ref="operaCategoryWindow" @success="getList" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryWindow from './components/areaCate.vue' |
| | | import { fetchList, deleteById } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'Category', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryWindow }, |
| | | data() { |
| | | return { |
| | | // æç´¢ |
| | | filters: { |
| | | parentId: '' |
| | | }, |
| | | isShowEdit: false, |
| | | loading: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0, |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | module: '车è¾ä¿¡æ¯è¡¨', |
| | | api: '/business/category', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | handleEdit(row) { |
| | | this.isShowEdit = true |
| | | let str = row && row.id ? 'ç¼è¾åºå' : 'æ°å»ºåºå' |
| | | this.$nextTick(() => { |
| | | this.$refs.operaCategoryWindow.open(str) |
| | | this.$refs.operaCategoryWindow.getList() |
| | | if (row && row.id) { |
| | | this.$refs.operaCategoryWindow.getDetail(row.id) |
| | | } |
| | | }) |
| | | }, |
| | | deleteById(row) { |
| | | this.$confirm(`æ¨ç¡®è®¤è¦å é¤è¯¥åºåå`, '温馨æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteById(row.id).then(res => { |
| | | this.getList() |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | getList() { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { ...filters, type: 4 }, |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请è¾å
¥å建人ç¼ç " v-trim/> |
| | | <el-form-item label="线路åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥çº¿è·¯åç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="请è¾å
¥å¤æ³¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0å¯ç¨ 1ç¦ç¨" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请è¾å
¥ç¶æ 0å¯ç¨ 1ç¦ç¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="徿 " prop="imgurl"> |
| | | <el-input v-model="form.imgurl" placeholder="请è¾å
¥å¾æ " v-trim/> |
| | | </el-form-item> |
| | | <div class="head"> |
| | | <div class="title">å·¡æ£ç¹</div> |
| | | <el-button type="primary" @click="openModal">æ·»å å·¡æ£ç¹</el-button> |
| | | </div> |
| | | <el-table v-loading="isWorking.search" :data="list" stripe> |
| | | <el-table-column prop="code" label="å·¡æ£ç¹ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="pointName" label="å·¡æ£ç¹åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="æ«ç æå¡" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.needScancode" @change="changeStatus" active-value="0" |
| | | inactive-value="1"></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="æåºç " min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <el-input v-model="scope.row.sortnum" class="w100"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="æä½" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span class="red cu" @click="handleDel(scope)">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | |
| | | </el-form> |
| | | <!-- --> |
| | | <el-dialog title="æ·»å å·¡æ£ç¹" :close-on-click-modal="false" append-to-body :visible.sync="isShowModal" width="500px"> |
| | | <el-select class="w400" v-model="selPoint" clearable multiple filterable> |
| | | <el-option v-for="item in pointList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="isShowModal = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="subModal">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getFetchList } from '@/api/Inspection/ywPatrolPoint' |
| | | import { create } from '@/api/Inspection/ywPatrolLine' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'OperaYwPatrolLineWindow', |
| | | extends: BaseOpera, |
| | |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | name: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | imgurl: '' |
| | | }, |
| | | selPoint: [], |
| | | pointList: [], |
| | | list: [], |
| | | isShowModal: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | selPoint: [{ type: 'array', required: true, message: '请è¾å
¥' }], |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/Inspection/ywPatrolLine', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | confirm() { |
| | | const { form, list } = this |
| | | if (list.length == 0) return Message.warning('请å
鿩巡æ£ç¹') |
| | | form.linePointList = list |
| | | create({ ...form }).then(res => { |
| | | if (res.code == 200) { |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | } |
| | | }) |
| | | }, |
| | | initData() { |
| | | getFetchList({}).then(res => { |
| | | this.pointList = res || [] |
| | | }) |
| | | }, |
| | | handleDel(row) { |
| | | this.list.splice(row.$index, 1) |
| | | |
| | | }, |
| | | changeStatus(row) { |
| | | |
| | | }, |
| | | openModal() { |
| | | this.selPoint = this.list.map(i => i.id) |
| | | this.isShowModal = true |
| | | }, |
| | | subModal() { |
| | | const { selPoint, pointList, list } = this |
| | | if (selPoint.length == 0) return Message.warning('请å
鿩巡æ£ç¹') |
| | | let arr = [] |
| | | // ååºéä¸å表 |
| | | pointList.forEach(item => { |
| | | selPoint.forEach(item2 => { |
| | | if (item.id === item2) { |
| | | arr.push(item) |
| | | } |
| | | }) |
| | | }) |
| | | // ålistå»é |
| | | list.forEach(item => { |
| | | arr.forEach((item2, i) => { |
| | | if (item.id === item2.id) { |
| | | arr.splice(i, 1) |
| | | } |
| | | }) |
| | | }) |
| | | // æ·»å |
| | | arr.forEach(i => { |
| | | this.list.push({ |
| | | needScancode: '1', |
| | | pointName: i.name, |
| | | pointId: i.id, |
| | | code: i.code, |
| | | id: i.id |
| | | }) |
| | | }) |
| | | this.isShowModal = false |
| | | }, |
| | | close(){ |
| | | this.visible = false |
| | | this.$emit('success') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .head { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-bottom: 20px; |
| | | |
| | | div { |
| | | font-weight: 500; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" :visible.sync="visible" width="620px" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç§°" v-trim/> |
| | | <el-form-item label="å·¡æ£ç¹ç¼ç " prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥åç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="徿 " prop="imgurl"> |
| | | <el-input v-model="form.imgurl" placeholder="请è¾å
¥å¾æ " v-trim/> |
| | | <el-form-item label="å·¡æ£ç¹åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å·¡æ£ç¹åç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="åºåç¼ç ï¼å
³ècategory)" prop="areaId"> |
| | | <el-input v-model="form.areaId" placeholder="请è¾å
¥åºåç¼ç ï¼å
³ècategory)" v-trim/> |
| | | <el-form-item label="å·¡æ£è®¾å¤"> |
| | | <el-select v-model="form.deviceId"> |
| | | <el-option v-for="item in deviceList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å°å" prop="addr"> |
| | | <el-input v-model="form.addr" placeholder="请è¾å
¥å°å" v-trim/> |
| | | <el-form-item label="æå±åºå" prop="areaId"> |
| | | <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="è¯·éæ©å·¡æ£åºå" clearable :options="cateList" |
| | | :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList', |
| | | checkStrictly: true |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="ç»çº¬åº¦"> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="å·¡æ£å
容" prop="content"> |
| | | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸ä¼ å¾ç" prop="imgurl"> |
| | | <UploadAvatarImage :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }" |
| | | :uploadData="{ folder: 'projects' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" |
| | | @uploadBegin="isUploading = true" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { fetchList } from '@/api/business/category' |
| | | export default { |
| | | name: 'OperaYwPatrolPointWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | name: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | code: '', |
| | | content: '', |
| | | imgurl: '', |
| | | areaId: '', |
| | | addr: '' |
| | | }, |
| | | deviceList: [], |
| | | cateList: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | code: [{ required: true, message: '请è¾å
¥' }], |
| | | }, |
| | | isUploading: false, |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | api: '/Inspection/ywPatrolPoint', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | initData() { |
| | | fetchList({ |
| | | model: { type: 4 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | }) |
| | | |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.form, 'catePId', e[0]) |
| | | this.$set(this.form, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.form, 'catePId', e[0]) |
| | | this.$set(this.form, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.form, 'catePId', '') |
| | | this.$set(this.form, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.form.imgurl = file.imgurl |
| | | this.form.imgurlfull = file.imgurlfull |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow width="520px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | |
| | | <el-form-item label="æ é¢" prop="title"> |
| | | <el-form-item label="计ååç§°" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请è¾å
¥æ é¢" v-trim/> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="å·¡æ£è´è´£äººç¼ç éåï¼å¤ä¸ªä½¿ç¨è±æéå·éå¼" prop="userIds"> |
| | | <el-input v-model="form.userIds" placeholder="请è¾å
¥å·¡æ£è´è´£äººç¼ç éåï¼å¤ä¸ªä½¿ç¨è±æéå·éå¼" v-trim/> |
| | | <el-form-item label="å·¡æ£çº¿è·¯"> |
| | | <el-select v-model="form.status" filterable clearable> |
| | | <el-option value="0" label="æ¯å¤©"></el-option> |
| | | <el-option value="1" label="æ¯å¨"></el-option> |
| | | <el-option value="2" label="æ¯æ"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="循ç¯å¨æ 0æ¯å¤© 1æ¯å¨ 2æ¯å¤©" prop="circleType"> |
| | | <el-input v-model="form.circleType" placeholder="请è¾å
¥å¾ªç¯å¨æ 0æ¯å¤© 1æ¯å¨ 2æ¯å¤©" v-trim/> |
| | | <el-form-item label="å·¡æ£è´è´£äºº"> |
| | | <el-select v-model="form.userIds" filterable clearable> |
| | | <el-option value="0" label="æ¯å¤©"></el-option> |
| | | <el-option value="1" label="æ¯å¨"></el-option> |
| | | <el-option value="2" label="æ¯æ"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="循ç¯éå¤è§å 1-31ï¼å¤ä¸ªè±æéå·éå¼" prop="circleDays"> |
| | | <el-input v-model="form.circleDays" placeholder="请è¾å
¥å¾ªç¯éå¤è§å 1-31ï¼å¤ä¸ªè±æéå·éå¼" v-trim/> |
| | | <el-form-item label="计åå¼å§æ¥æ-ç»ææ¥æ"> |
| | | <el-date-picker v-model="form.selDate" is-range range-separator="-" value-format="yyyy-MM-dd" type="daterange" |
| | | start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" class="w400" /> |
| | | </el-form-item> |
| | | <el-form-item label="å¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å¼å§æ¥æ"></el-date-picker> |
| | | <el-form-item label="è®¡åæ§è¡æ¶é´"> |
| | | <el-time-picker v-model="form.selTime" is-range range-separator="-" format="HH:mm" value-format="HH:mm:ss" |
| | | start-placeholder="å¼å§æ¶é´" end-placeholder="ç»ææ¶é´" placeholder="éæ©æ¶é´èå´" class="w400" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¥æ" prop="endDate"> |
| | | <el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ç»ææ¥æ"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å¼å§æ¶é´ç¹" prop="startTime"> |
| | | <el-input v-model="form.startTime" placeholder="请è¾å
¥å¼å§æ¶é´ç¹" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´ç¹" prop="endTime"> |
| | | <el-input v-model="form.endTime" placeholder="请è¾å
¥ç»ææ¶é´ç¹" v-trim/> |
| | | <el-form-item label="循ç¯å¨æ"> |
| | | <el-select v-model="form.circleType" filterable clearable> |
| | | <el-option value="0" label="æ¯å¤©"></el-option> |
| | | <el-option value="1" label="æ¯å¨"></el-option> |
| | | <el-option value="2" label="æ¯æ"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | endDate: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | processStatus: '' |
| | | processStatus: '', |
| | | selDate: [], |
| | | selTime: [], |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | |
| | | api: '/Inspection/ywPatrolScheme', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | initData() { |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åºååç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åºååç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æå±åºå" prop="parentId"> |
| | | <el-select :disabled="form.id" v-model="form.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åºå"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 6)" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { create, fetchCateList, getInfoById } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'OperaCategoryWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | parentId: null, |
| | | name: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | type: 4 |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥åºååç§°', trigger: 'blur' } |
| | | ], |
| | | status: [ |
| | | { required: true, message: 'è¯·éæ©æ¯å¦å¯ç¨', trigger: 'change' } |
| | | ] |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | api: '/business/category', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | fetchCateList({ type: 4 }).then(res => { |
| | | this.dataList = res || [] |
| | | |
| | | }) |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.$emit('close') |
| | | }, |
| | | getDetail(id) { |
| | | getInfoById(id).then(res => { |
| | | this.form = res |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow title="å·¡æ£ä»»å¡è¯¦æ
" :showConfirm="false" :visible.sync="isShowModal"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="å·¡æ£ç¹åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£ç»æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å·¡æ£è¯´æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.billCode || scope.row.contractNum }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getDetail" :pagination="pagination" /> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Pagination from '@/components/common/Pagination' |
| | | export default { |
| | | components: { GlobalWindow, QueryForm, Pagination }, |
| | | data() { |
| | | return { |
| | | isShowModal: true, |
| | | id: '', |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'å·¡æ£ç¹åç§°' |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'select', |
| | | label: 'æ§è¡ç¶æ', |
| | | placeholder: 'å
¨é¨', |
| | | options: [] |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | getDetail(page) { |
| | | const { pagination, filters, id } = this |
| | | this.loading = true |
| | | platformLogPage({ |
| | | model: { |
| | | ...filters, |
| | | id, |
| | | }, |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getDetail() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | this.getDetail() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:ywpatrolpoint:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å·¡æ£ç¹" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å·¡æ£ç¹åç§°/ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å·¡æ£åºå"> |
| | | <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="è¯·éæ©å·¡æ£åºå" clearable |
| | | :options="areaList" :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList', |
| | | checkStrictly: true |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolline:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywpatrolpoint:create', 'business:ywpatrolpoint:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwPatrolPointWindow.open('æ°å»ºå·¡æ£ç¹')" icon="el-icon-plus" |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolpoint:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolpoint:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0å¯ç¨ 1ç¦ç¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="å·¡æ£ç¹ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="å·¡æ£ç¹åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="deviceName" label="å
³è设å¤" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaName" label="å·¡æ£åºå" min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywpatrolpoint:update', 'business:ywpatrolpoint:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwPatrolPointWindow.open('ç¼è¾å·¡æ£ç¹', row)" icon="el-icon-edit" |
| | | <el-button type="text" @click="editClick(row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywpatrolpoint:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolpoint:delete']">å é¤</el-button> |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaYwPatrolPointWindow from './components/OperaYwPatrolPointWindow' |
| | | import { fetchList } from '@/api/business/category' |
| | | export default { |
| | | name: 'YwPatrolPoint', |
| | | extends: BaseTable, |
| | |
| | | imgurl: '', |
| | | areaId: '', |
| | | addr: '' |
| | | } |
| | | }, |
| | | areaList: [] |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.getProject() |
| | | }, |
| | | methods: { |
| | | getProject() { |
| | | fetchList({ |
| | | model: {type: 4}, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.areaList = res.records || [] |
| | | }) |
| | | }, |
| | | editClick(row) { |
| | | if (row && row.id) { |
| | | this.$refs.operaYwPatrolPointWindow.open('ç¼è¾å·¡æ£ç¹') |
| | | } else { |
| | | this.$refs.operaYwPatrolPointWindow.open('æ°å»ºå·¡æ£ç¹') |
| | | } |
| | | this.$refs.operaYwPatrolPointWindow.initData() |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.searchForm, 'catePId', e[0]) |
| | | this.$set(this.searchForm, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.searchForm, 'catePId', e[0]) |
| | | this.$set(this.searchForm, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.searchForm, 'catePId', '') |
| | | this.$set(this.searchForm, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <TableLayout :permissions="['business:ywpatrolline:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ¥æ"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="å·¡æ£çº¿è·¯" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å·¡æ£çº¿è·¯åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolline:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolline:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> --> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywpatrolline:create', 'business:ywpatrolline:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwPatrolLineWindow.open('æ°å»ºå·¡æ£çº¿è·¯')" icon="el-icon-plus" v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolline:delete']">å é¤</el-button></li> |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolline:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0å¯ç¨ 1ç¦ç¨" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywpatrolline:update', 'business:ywpatrolline:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <el-table-column prop="name" label="线路åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lineAmount" label="å·¡æ£ç¹æ°é" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" @change="changeStatus" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywpatrolline:update', 'business:ywpatrolline:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwPatrolLineWindow.open('ç¼è¾å·¡æ£çº¿è·¯', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolline:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolline:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="editClick(row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywpatrolline:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolline:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeStatus() { |
| | | |
| | | }, |
| | | editClick(row) { |
| | | if (row && row.id) { |
| | | this.$refs.operaYwPatrolLineWindow.open('ç¼è¾å·¡æ£çº¿è·¯') |
| | | } else { |
| | | this.$refs.operaYwPatrolLineWindow.open('æ°å»ºå·¡æ£çº¿è·¯') |
| | | } |
| | | this.$refs.operaYwPatrolLineWindow.initData() |
| | | |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-input v-model="searchForm.title" placeholder="请è¾å
¥æ é¢" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å¼å§æ¥æ" @change="search"/> |
| | | <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å¼å§æ¥æ" |
| | | @change="search" /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¥æ" prop="endDate"> |
| | | <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ç»ææ¥æ" @change="search"/> |
| | |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolscheme:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywpatrolscheme:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywpatrolscheme:create', 'business:ywpatrolscheme:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwPatrolSchemeWindow.open('æ°å»ºå·¡æ£è®¡å')" icon="el-icon-plus" v-permissions="['business:ywpatrolscheme:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaYwPatrolSchemeWindow.open('æ°å»ºå·¡æ£è®¡å')" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolscheme:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | |
| | | <el-table-column prop="title" label="æ é¢" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0å¯ç¨ 1ç¦ç¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lineId" label="å·¡æ£ç¹ç¼ç (å
³èyw_patrol_line)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="title" label="计ååç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lineId" label="计åç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="è´è´£äººå" min-width="100px"></el-table-column> |
| | | |
| | | <el-table-column prop="dealDate" label="å¤çæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealInfo" label="å¤ç夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="startDate" label="å¼å§æ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="endDate" label="ç»ææ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="startTime" label="å¼å§æ¶é´ç¹" min-width="100px"></el-table-column> |
| | | <el-table-column prop="endTime" label="ç»ææ¶é´ç¹" min-width="100px"></el-table-column> |
| | | <el-table-column prop="processStatus" label="æ§è¡è¿åº¦ 0å¾
å¼å§ 1è¿è¡ä¸ 2è¶
æ 3已宿" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywpatrolscheme:update', 'business:ywpatrolscheme:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <el-table-column prop="startDate" label="è®¡åæ¥æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.startDate }} - {{ scope.row.endDate }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="startDate" label="æ§è¡æ¶é´" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.startTime }} - {{ scope.row.endTime }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="å建人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="æ§è¡ç»æ" min-width="100px"></el-table-column> |
| | | <el-table-column label="ç¶æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" @change="changeStatus" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywpatrolscheme:update', 'business:ywpatrolscheme:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwPatrolSchemeWindow.open('ç¼è¾å·¡æ£è®¡å', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolscheme:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="$refs.operaYwPatrolSchemeWindow.open('ç¼è¾å·¡æ£è®¡å', row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywpatrolscheme:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywpatrolscheme:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | editClick(row) { |
| | | if (row && row.id) { |
| | | this.$refs.operaYwPatrolSchemeWindow.open('ç¼è¾å·¡æ£è®¡å') |
| | | } else { |
| | | this.$refs.operaYwPatrolSchemeWindow.open('æ°å»ºå·¡æ£è®¡å') |
| | | } |
| | | this.$refs.operaYwPatrolSchemeWindow.initData() |
| | | |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <TableLayout :permissions="['business:ywpatroltask:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | |
| | | <el-form-item label="æ é¢" prop="title"> |
| | | <el-input v-model="searchForm.title" placeholder="请è¾å
¥æ é¢" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="计ååç§°" prop="title"> |
| | | <el-input v-model="searchForm.title" placeholder="请è¾å
¥è®¡ååç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å¼å§æ¥æ" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¥æ" prop="endDate"> |
| | | <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ç»ææ¥æ" @change="search"/> |
| | | <el-form-item > |
| | | <el-select v-model="searchForm.status" filterable clearable> |
| | | <el-option value="0" label="å¾
å¼å§"></el-option> |
| | | <el-option value="1" label="è¿è¡ä¸"></el-option> |
| | | <el-option value="2" label="å·²è¶
æ"></el-option> |
| | | <el-option value="3" label="已宿"></el-option> |
| | | <el-option value="4" label="已忶"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywpatroltask:create', 'business:ywpatroltask:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwPatrolTaskWindow.open('æ°å»ºå·¡æ£ä»»å¡')" icon="el-icon-plus" v-permissions="['business:ywpatroltask:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="title" label="æ é¢" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0å¾
å¼å§ 1è¿è¡ä¸ 2å·²è¶
æ 3已宿 4已忶" min-width="100px"></el-table-column> |
| | | <el-table-column prop="schemeId" label="å·¡æ£è®¡åç¼ç (å
³èyw_patrol_scheme)" min-width="100px"></el-table-column> |
| | | |
| | | <el-table-column prop="dealUserId" label="å¤ç人ç¼ç (å
³èsystem_user)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="å¤çæ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealInfo" label="å¤ç夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="startDate" label="å¼å§æ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="endDate" label="ç»ææ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealStatus" label="å·¡æ£ç»æ 0æ£å¸¸ 1å¼å¸¸" min-width="100px"></el-table-column> |
| | | <el-table-column prop="planTitle" label="计ååç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="schemeId" label="计åç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="ä»»å¡ç¼å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="任塿¶é´" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.startDate }} {{ scope.row.endDate }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dealDate" label="å®é
宿æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="userName" label="æ§è¡äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealStatus" label="ä»»å¡ç¶æ" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span class="primaryColor" v-if="scope.row.status == 0">å¾
å¼å§</span> |
| | | <span class="green" v-if="scope.row.status == 1">è¿è¡ä¸</span> |
| | | <span class="red" v-if="scope.row.status == 2">å·²è¶
æ</span> |
| | | <span class="gray" v-if="scope.row.status == 3">已宿</span> |
| | | <span class="gray" v-if="scope.row.status == 4">已忶</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywpatroltask:update', 'business:ywpatroltask:delete'])" |
| | | label="æä½" |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwPatrolTaskWindow.open('ç¼è¾å·¡æ£ä»»å¡', row)" icon="el-icon-edit" v-permissions="['business:ywpatroltask:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">åæ¶</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | > |
| | | </pagination> |
| | | </template> |
| | | |
| | | <!-- --> |
| | | <TaskDetail ref="TaskDetailRef" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import TaskDetail from './components/taskDetail' |
| | | export default { |
| | | name: 'YwPatrolTask', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | components: { TableLayout, Pagination, TaskDetail }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | title: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | schemeId: '', |
| | | pointId: '', |
| | | dealUserId: '', |
| | | dealDate: '', |
| | | dealInfo: '', |
| | | circleType: '', |
| | | startDate: '', |
| | | endDate: '', |
| | | dealStatus: '' |
| | | status: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handleDetail(row) { |
| | | this.$refs.TaskDetailRef.isShowModal = true |
| | | this.$refs.TaskDetailRef.id = row.id |
| | | this.$refs.TaskDetailRef.getDetail() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-form-item label="客æ·åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å®¢æ·åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥äººåå§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywcustomer:exportExcel']" |
| | |
| | | v-permissions="['business:ywcustomer:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="客æ·åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberName" label="è系人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="èç³»çµè¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="身份" min-width="100px"></el-table-column> |
| | | <el-table-column prop="" label="ç¶æ" min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const rules = { |
| | | name: [{ required: true, message: '请è¾å
¥' }] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="home_title"> |
| | | <div class="left"> |
| | | <span class="mr10">åä½åç§°ï¼xxx</span> |
| | | <span class="status">status</span> |
| | | </div> |
| | | <el-button plain type="danger">éç§</el-button> |
| | | </div> |
| | | <div class="remark">ååæè¦ï¼xxxx</div> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">ååä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">å
³èè´¦å</div> |
| | | <div class="tab" :class="{ active: activeTabs == 2 }" @click="tabsClick(2)">æä½è®°å½</div> |
| | | </div> |
| | | <div class="main"> |
| | | <div class="title">åºç¡ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">ååç¼å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»å人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å建人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ååç§èµæ°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">æå±å
¬å¸</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç¾è®¢æ¥æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å¼å§æ¥æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»ææ¥æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">æå±é¡¹ç®</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»æåæ´(åèäºå
¥)</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">æ¿æºä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">项ç®åç§°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å®åç§°</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">楼å±/æ¿å·</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">é¢ç§¯</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">ç§å®¢ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">ç§å®¢</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">ç»å人</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">ç§èµæ¡æ¬¾</div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">æ¼ééé¢</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">仿¬¾æ¹å¼</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å
ç§æ</div> |
| | | <div class="val">{{ info.aaa }}</div> |
| | | </div> |
| | | </div> |
| | | <el-table :data="info.list" stripe> |
| | | <el-table-column prop="" label="å¼å§æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç»ææ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åååä»·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="仿¬¾æå天æ°" min-width="100" show-overflow-tooltip /> |
| | | </el-table> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: false, |
| | | activeTabs: '', |
| | | info: {} |
| | | } |
| | | }, |
| | | methods: { |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | getDetail() { |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | .home_title { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .left { |
| | | font-weight: 500; |
| | | font-size: 16px; |
| | | margin-right: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .status { |
| | | padding: 0 6px; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | border-radius: 2px; |
| | | border: 1px solid #00BA92; |
| | | color: #00BA92; |
| | | font-weight: 400; |
| | | font-size: 12px; |
| | | color: #00BA92; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | background: #E8EBF7; |
| | | border-radius: 2px; |
| | | padding: 10px 20px; |
| | | font-size: 16px; |
| | | margin: 20px 0 |
| | | } |
| | | |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | .tab { |
| | | height: 58px; |
| | | line-height: 58px; |
| | | font-size: 16px; |
| | | color: #666666; |
| | | margin-right: 30px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | color: $primary-color; |
| | | border-bottom: 2px solid $primary-color; |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 18px; |
| | | color: $primary-color; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | background: #F7F7F7; |
| | | border-radius: 2px; |
| | | padding: 15px 20px; |
| | | margin-bottom: 20px; |
| | | |
| | | .item { |
| | | width: 25%; |
| | | margin-bottom: 16px; |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow width="1000px" :title="title" :visible.sync="showModal" :confirm-working="isWorking" @close="close" @confirm="confirm"> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">1ãåºæ¬ä¿¡æ¯</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">2ãè´¹ç¨æ¡æ¬¾</div> |
| | | </div> |
| | | <template v-if="activeTabs == 0"> |
| | | <div class="main"> |
| | | <div class="main_content"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <div class="m_title">åºç¡ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <el-form-item label="ååç±»å" prop="type"> |
| | | <el-select v-model="param.type" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in types" :value="item.value" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ååç¼å·" prop="code"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥ååç¼å·" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ç»å人" prop="aaa"> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in agentList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ååç¾è®¢æ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="ååå¼å§æ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="ååç»ææ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="param.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="å½å±é¡¹ç®" prop=""> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in projectList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç»æåæ´(åèäºå
¥)" prop=""> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option :value="0" label="å¦"></el-option> |
| | | <el-option :value="1" label="æ¯"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå±å
¬å¸" prop=""> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in comparyList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="m_title">ç§å®¢ä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <el-form-item label="ç§å®¢" prop=""> |
| | | <el-button @click="handleRent" type="primary">éæ©ç§å®¢</el-button> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in renterList" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è系人" prop=""> |
| | | <el-select v-model="param.aaa" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in contacts" :value="item.id" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <div class="main_house"> |
| | | <div class="title">è¯·éæ©æ¿æº</div> |
| | | <el-cascader style="width: 300px" v-model="value" @change="houseChange" :options="options" |
| | | :props="{ multiple: true }" collapse-tags clearable /> |
| | | </div> |
| | | </div> |
| | | <div class="file_wrap"> |
| | | <div class="head"> |
| | | <div>ååéä»¶</div> |
| | | <el-button icon="el-icon-plus" plain>æ·»å éä»¶</el-button> |
| | | </div> |
| | | <el-table :data="param.list" stripe> |
| | | <el-table-column prop="" label="éä»¶åç§°" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½äºº" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½æ¶é´" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="æä½" align="center" min-width="100"> |
| | | <template v-slot="scope"> |
| | | <span class="cu red">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | <template v-if="activeTabs == 1"> |
| | | <div class="tabs cost_tabs"> |
| | | <div class="tab" :class="{ active: cactiveTabs == 0 }" @click="ctabsClick(0)">ç§èµæ¡æ¬¾</div> |
| | | <div class="tab" :class="{ active: cactiveTabs == 1 }" @click="ctabsClick(1)">ç©ä¸æ¡æ¬¾</div> |
| | | </div> |
| | | <div class="main"> |
| | | <div class="main_content"> |
| | | <el-form :model="paramCost" ref="paramCostRef" :rules="rules"> |
| | | <div class="m_title">ç§èµä¿¡æ¯</div> |
| | | <div class="list"> |
| | | <el-form-item label="æ¼ééé¢(å
)" prop="type"> |
| | | <el-input v-model="paramCost.code" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="仿¬¾æ¹å¼" prop="code"> |
| | | <el-select v-model="paramCost.type" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in payMethods" :value="item.value" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å
ç§æ" prop="aaa"> |
| | | <el-date-picker type="daterange" v-model="paramCost.getDate" value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="m_title">ç§èµæ¡æ¬¾</div> |
| | | <div class="list"> |
| | | <el-form-item label="èµ·å§æ¥æ" prop=""> |
| | | <el-date-picker type="date" v-model="paramCost.getDate" value-format="yyyy-MM-dd" placeholder="è¯·éæ©" /> |
| | | </el-form-item> |
| | | <el-form-item label="åååä»·" prop=""> |
| | | <el-input placeholder="请è¾å
¥å
容" v-model="paramCost.aaa"> |
| | | <el-select v-model="paramCost.ddd" slot="append" placeholder="è¯·éæ©" clearable> |
| | | <el-option v-for="item in unitOps" :value="item.value" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仿¬¾æå天æ°" prop=""> |
| | | <el-input v-model="paramCost.aaa" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <el-button style="width: 100%;height: 48px;" type="primary" plain>çæè´¦åæç»</el-button> |
| | | <el-table :data="paramCost.list" class="mt20" stripe> |
| | | <el-table-column prop="" label="è´¹ç¨ç±»å" align="center" width="160px" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ææ°"align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åºé´" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="仿¬¾æ¥" align="center" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="åºæ¶" align="center" min-width="100" show-overflow-tooltip /> |
| | | </el-table> |
| | | <div class="total"> |
| | | <span>æ»è®¡</span> |
| | | <div>è´¹ç¨åºæ¶æ»è®¡ï¼ï¼æ¼éåºæ¶æ»è®¡ï¼</div> |
| | | </div> |
| | | </template> |
| | | <!-- --> |
| | | <MemberSearch ref="MemberSearchRef" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import MemberSearch from '@/components/common/MemberSearch' |
| | | import { rules } from './config' |
| | | export default { |
| | | components: { |
| | | GlobalWindow, |
| | | MemberSearch |
| | | }, |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | showModal: false, |
| | | title: 'å建åå', |
| | | activeTabs: '0', |
| | | param: {}, |
| | | rules, |
| | | |
| | | types: [ |
| | | { name: 'ç©ä¸+ç§èµåå', value: 0 }, |
| | | { name: 'ç§èµåå', value: 1 }, |
| | | { name: 'ç©ä¸åå', value: 2 }, |
| | | ], |
| | | agentList: [], //ç»å人 |
| | | projectList: [], |
| | | comparyList: [], // å
¬å¸ |
| | | renterList: [], // ç§å®¢ |
| | | contacts: [], // è系人 |
| | | value: [], |
| | | options: [ |
| | | { |
| | | value: 1, |
| | | label: 'ä¸å', |
| | | children: [{ |
| | | value: 2, |
| | | label: '䏿µ·', |
| | | children: [ |
| | | { value: 3, label: 'æ®é' }, |
| | | { value: 4, label: 'é»å' }, |
| | | { value: 5, label: '徿±' } |
| | | ] |
| | | }, { |
| | | value: 7, |
| | | label: 'æ±è', |
| | | children: [ |
| | | { value: 8, label: 'å京' }, |
| | | { value: 9, label: 'èå·' }, |
| | | { value: 10, label: 'æ é¡' } |
| | | ] |
| | | }, { |
| | | value: 12, |
| | | label: 'æµæ±', |
| | | children: [ |
| | | { value: 13, label: 'æå·' }, |
| | | { value: 14, label: '宿³¢' }, |
| | | { value: 15, label: 'åå
´' } |
| | | ] |
| | | }] |
| | | }, |
| | | { |
| | | value: 17, |
| | | label: '西å', |
| | | children: [{ |
| | | value: 18, |
| | | label: 'é西', |
| | | children: [ |
| | | { value: 19, label: '西å®' }, |
| | | { value: 20, label: 'å»¶å®' } |
| | | ] |
| | | }, { |
| | | value: 21, |
| | | label: 'æ°çç»´å¾å°æèªæ²»åº', |
| | | children: [ |
| | | { value: 22, label: 'ä¹é²æ¨é½' }, |
| | | { value: 23, label: 'å
æçä¾' } |
| | | ] |
| | | }] |
| | | } |
| | | ], |
| | | cactiveTabs: 0, |
| | | paramCost: {}, |
| | | payMethods: [ |
| | | { name: '䏿¬¡æ§ä»æ¬¾', value: 0 }, |
| | | { name: '3个æä¸ä»', value: 1 }, |
| | | { name: '6个æä¸ä»', value: 2 }, |
| | | { name: '1å¹´ä¸ä»', value: 2 }, |
| | | ], |
| | | unitOps: [ |
| | | { name: 'å
/m²·天', value: 0 }, |
| | | { name: 'å
/m²·æ', value: 1 }, |
| | | { name: 'å
/天', value: 2 }, |
| | | { name: 'å
/æ', value: 3 }, |
| | | { name: 'å
/å¹´', value: 4 }, |
| | | { name: 'å
/m²·年', value: 5 }, |
| | | { name: 'å
/åº', value: 6 }, |
| | | ], |
| | | } |
| | | }, |
| | | methods: { |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | ctabsClick(val) { |
| | | this.cactiveTabs = val |
| | | }, |
| | | getDetail() { |
| | | |
| | | }, |
| | | handleRent() { |
| | | this.$refs.MemberSearchRef.openModal() |
| | | }, |
| | | houseChange(e) { |
| | | console.log(e) |
| | | console.log(this.value) |
| | | |
| | | }, |
| | | close() { |
| | | this.showModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | |
| | | .tab { |
| | | height: 58px; |
| | | line-height: 58px; |
| | | font-size: 16px; |
| | | color: #666666; |
| | | margin: 0 30px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | color: $primary-color; |
| | | border-bottom: 2px solid $primary-color; |
| | | } |
| | | } |
| | | |
| | | .cost_tabs { |
| | | justify-content: flex-start; |
| | | border: none; |
| | | |
| | | .tab { |
| | | height: 36px; |
| | | line-height: 36px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | |
| | | .main_content { |
| | | flex: 1; |
| | | margin-right: 20px; |
| | | |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .el-form-item { |
| | | width: 33.33%; |
| | | box-sizing: border-box; |
| | | padding: 0 12px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_house { |
| | | width: 420px; |
| | | padding: 24px 12px; |
| | | border: 1px solid #c3c6cd; |
| | | border-radius: 2px; |
| | | |
| | | .title { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | margin-bottom: 30px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | .total{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 32px; |
| | | background-color: #e7e9f5; |
| | | span{ |
| | | width: 160px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .file_wrap { |
| | | padding: 20px 16px; |
| | | border: 1px solid #c3c6cd; |
| | | border-radius: 2px; |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | } |
| | | |
| | | .m_title { |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | margin-bottom: 15px; |
| | | margin-top: 10px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear"> |
| | | <template #btns> |
| | | <el-button>导åº</el-button> |
| | | </template> |
| | | </QueryForm> |
| | | <div class="mt10"> |
| | | <el-button @click="handleEdit()" icon="el-icon-plus" type="primary">æ°å»º</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="客æ·åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="å¼å§æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç»ææ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç§èµåä»·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç§èµé¢ç§¯" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ç¾è®¢æ¥" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="ååç¼å·" min-width="100" show-overflow-tooltip /> |
| | | |
| | | <el-table-column prop="" label="ååç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <span class="primaryColor">å¾
æ§è¡</span> |
| | | <span class="green">æ£å¸¸æ§è¡ä¸</span> |
| | | <span class="gary">å·²éç§</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="æä½" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <span class="primaryColor cu" @click="handleDetail(scope.row)">æ¥ç详æ
</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <ContractDetail ref="ContractDetailRef" /> |
| | | <ContractEdit ref="ContractEditRef" v-if="showEdit" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import ContractDetail from './components/contractDetail' |
| | | import ContractEdit from './components/contractEdit.vue' |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { platformLogPage, getPlatformGroupList } from '@/api' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | ContractEdit, |
| | | ContractDetail |
| | | }, |
| | | data() { |
| | | return { |
| | | showEdit: false, |
| | | loading: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'åååç§°' |
| | | }, |
| | | { |
| | | filed: 'selDate', |
| | | type: 'datetimerange', |
| | | placeholder: 'åºå¼å§æ¶é´' |
| | | } |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getList() |
| | | // this.getGroupList() |
| | | }, |
| | | methods: { |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.ContractEditRef.showModal = true |
| | | }) |
| | | if(row && row.id){ |
| | | |
| | | }else{ |
| | | |
| | | } |
| | | }, |
| | | handleDetail(row) { |
| | | this.$refs.ContractDetailRef.visible = true |
| | | this.$refs.ContractDetailRef.getDetail(row.id) |
| | | }, |
| | | |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | platformLogPage({ |
| | | model: { |
| | | ...filters, |
| | | queryStatus: '6,7,8', |
| | | beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, |
| | | beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, |
| | | }, |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="code" label="æ¶æ¯æ¡ç®" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="æ¶æ¬¾å
¬å¸" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="è´¦æ·ç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="modelNo" label="è´¦æ·åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="弿·é¶è¡" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="é¶è¡è´¦å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/accountEdit.vue' |
| | | import { companyGetList, deleteById } from '@/api/business/company' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'æ¶æ¯æ¡ç®' |
| | | }, |
| | | { |
| | | filed: 'name', |
| | | type: 'select', |
| | | label: 'æ¶æ¬¾å
¬å¸' |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | companyGetList({ |
| | | model: { |
| | | ...filters, |
| | | type: 2 |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="df_sb mt20"> |
| | | <div class="tabs"> |
| | | <div class="tab" :class="{ active: activeTabs == 0 }" @click="tabsClick(0)">æ¶æ¬¾è´¦å</div> |
| | | <div class="tab" :class="{ active: activeTabs == 1 }" @click="tabsClick(1)">仿¬¾è´¦å</div> |
| | | </div> |
| | | <div class="btns"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | <el-button @click="handleEx" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="è¿ç»´äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="设å¤ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="设å¤åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="stautsName" label="设å¤ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="remark" label="è¿ç»´å¤æ³¨" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">æ¥ç</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/deviceEdit.vue' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | activeTabs: 0, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | statusMap: [ |
| | | { value: 0, label: 'å¾
æ¶æ¬¾' }, |
| | | { value: 1, label: 'å·²ç»ç®' }, |
| | | { value: 2, label: 'é¨åç»æ¸
' }, |
| | | { value: 3, label: 'å¾
鿬¾' }, |
| | | { value: 4, label: 'å¾
仿¬¾' }, |
| | | ], |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: '客æ·åç§°', |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'select', |
| | | label: 'è´¦åç¶æ', |
| | | options: [ |
| | | { value: '0', label: 'å¼å¯' }, |
| | | { value: '1', label: 'å
³é' }, |
| | | ] |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'select', |
| | | label: 'ç»æ¸
ç¶æ', |
| | | options: this.statusMap |
| | | }, |
| | | { |
| | | filed: 'selDate', |
| | | type: 'daterange', |
| | | label: 'åºæ¶/仿¥æ' |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { |
| | | ...filters, |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | |
| | | }, |
| | | tabsClick(val) { |
| | | this.activeTabs = val |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDetail() { |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | this.getList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | |
| | | .tab { |
| | | height: 58px; |
| | | line-height: 58px; |
| | | font-size: 16px; |
| | | color: #666666; |
| | | margin: 0 30px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | color: $primary-color; |
| | | border-bottom: 2px solid $primary-color; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="code" label="å
¬å¸åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="å
¬å¸ç®ä»" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="纳ç¨è¯å«å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="modelNo" label="å
¬å¸å°å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="æ¶æ¯è´¦æ·æ°é" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/companyEdit.vue' |
| | | import { companyGetList, deleteById } from '@/api/business/company' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'å
¬å¸åç§°' |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | companyGetList({ |
| | | model: { |
| | | ...filters, |
| | | type: 2 |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾å
¬å¸' : 'æ°å»ºå
¬å¸'" :confirmWorking="subLoading" :visible.sync="isShowModal" |
| | | width="600px" @close="close" @confirm="handleSub"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <el-form-item label="æ¶æ¯æ¡ç®" prop="name"> |
| | | <el-input v-model="param.name" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶æ¬¾å
¬å¸" prop="name"> |
| | | <el-select v-model="param.realName" filterable clearable> |
| | | <el-option value="0" label="xxx"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶æ¬¾ç±»å" prop="name"> |
| | | <el-radio-group v-model="param.radio"> |
| | | <el-radio :label="0">对å
¬</el-radio> |
| | | <el-radio :label="1">个人</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="è´¦æ·åç§°" prop="desc"> |
| | | <el-input v-model="param.desc" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="弿·åç§°"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="é¶è¡è´¦å·"> |
| | | <el-input v-model="param.addr" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="code"> |
| | | <el-switch v-model="param.status" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { create, updateById } from '@/api/business/company' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: { |
| | | type: 2, |
| | | status: '0' |
| | | }, |
| | | cateList: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | desc: [{ required: true, message: '请è¾å
¥' }] |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.param, 'catePId', '') |
| | | this.$set(this.param, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$set(this.param, 'imgurl', file.imgurl) |
| | | this.$set(this.param, 'imgurlfull', file.imgurlfull) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾å
¬å¸' : 'æ°å»ºå
¬å¸'" :confirmWorking="subLoading" :visible.sync="isShowModal" |
| | | width="600px" @close="close" @confirm="handleSub"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <el-form-item label="å
¬å¸åç§°" prop="name"> |
| | | <el-input v-model="param.name" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="å
¬å¸ç®ä»" prop="desc"> |
| | | <el-input v-model="param.desc" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="纳ç¨è¯å«å·"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»å°å"> |
| | | <el-input v-model="param.addr" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="code"> |
| | | <el-switch v-model="param.status" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { create, updateById } from '@/api/business/company' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: { |
| | | type: 2, |
| | | status: '0' |
| | | }, |
| | | cateList: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | desc: [{ required: true, message: '请è¾å
¥' }] |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.param, 'catePId', '') |
| | | this.$set(this.param, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$set(this.param, 'imgurl', file.imgurl) |
| | | this.$set(this.param, 'imgurlfull', file.imgurlfull) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾è®¾å¤' : 'æ°å»ºè®¾å¤'" :confirmWorking="subLoading" :visible.sync="isShowModal" width="600px" @close="close" |
| | | @confirm="handleSub"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <el-form-item label="设å¤ç¼ç " prop="code"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤åç§°" prop="name"> |
| | | <el-input v-model="param.name" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤åå·" prop=""> |
| | | <el-input v-model="param.modelNo" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤åç±»" prop=""> |
| | | <el-cascader v-model="param.areaIds" @change="changeSel" placeholder="è¯·éæ©å·¡æ£åºå" clearable :options="cateList" |
| | | :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList', |
| | | checkStrictly: true |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç®¡çå" prop=""> |
| | | <el-select v-model="param.realName" filterable clearable> |
| | | <el-option value="0" label="xxx"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå¨ä½ç½®" prop=""> |
| | | <el-input v-model="param.addr" placeholder="请è¾å
¥" v-trim /> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="ä¾åºå" prop=""> |
| | | <el-input v-model="param.company" placeholder="请è¾å
¥" v-trim /> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´å
容" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç¶æ" prop=""> |
| | | <el-select v-model="param.status" filterable clearable> |
| | | <el-option value="0" label="æ£å¸¸"></el-option> |
| | | <el-option value="1" label="æå"></el-option> |
| | | <el-option value="2" label="æ¥åº"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç
§ç" prop=""> |
| | | <UploadAvatarImage :file="{ 'imgurlfull': param.imgurlfull, 'imgurl': param.imgurl }" |
| | | :uploadData="{ folder: 'projects' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" |
| | | @uploadBegin="isUploading = true" /> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { fetchList } from '@/api/business/category' |
| | | import { create, updateById } from '@/api/Inspection/device' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: {}, |
| | | cateList: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | code: [{ required: true, message: '请è¾å
¥' }] |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | if (res.code == 200) { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | } |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | initData() { |
| | | fetchList({ |
| | | model: { type: 5 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | }) |
| | | |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.param, 'catePId', '') |
| | | this.$set(this.param, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$set(this.param, 'imgurl', file.imgurl) |
| | | this.$set(this.param, 'imgurlfull', file.imgurlfull) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="code" label="shou" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="å
¬å¸ç®ä»" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="纳ç¨è¯å«å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="modelNo" label="å
¬å¸å°å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="æ¶æ¯è´¦æ·æ°é" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/companyEdit.vue' |
| | | import { companyGetList, deleteById } from '@/api/business/company' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: 'æ¶æ¯æ¡ç®' |
| | | }, |
| | | { |
| | | filed: 'name', |
| | | type: 'select', |
| | | label: 'æ¶æ¬¾å
¬å¸' |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | companyGetList({ |
| | | model: { |
| | | ...filters, |
| | | type: 2 |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
| | |
| | | <template> |
| | | <TableLayout> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']"> |
| | | <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:category:create']">æ°å»º</el-button></li> |
| | | <li v-permissions="['business:category:exportExcel']"><el-button type="primary" |
| | | @click="exportExcel">导åº</el-button></li> |
| | | </ul> |
| | | <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search" |
| | | :data="dataList" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" label="设å¤åç±»" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="parentName" label="æå±åç±»" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="æä½" |
| | | min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryWindow v-if="isShowEdit" @close="isShowEdit = false" ref="operaCategoryWindow" @success="getList" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryWindow from './components/OperaCategoryWindow' |
| | | import { fetchList, deleteById } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'Category', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryWindow }, |
| | | data() { |
| | | return { |
| | | // æç´¢ |
| | | filters: { |
| | | parentId: '' |
| | | }, |
| | | isShowEdit: false, |
| | | loading: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0, |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | module: '车è¾ä¿¡æ¯è¡¨', |
| | | api: '/business/category', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | handleEdit(row) { |
| | | this.isShowEdit = true |
| | | let str = row && row.id ? 'ç¼è¾è®¾å¤åç±»' : 'æ°å»ºè®¾å¤åç±»' |
| | | this.$nextTick(() => { |
| | | this.$refs.operaCategoryWindow.open(str) |
| | | this.$refs.operaCategoryWindow.getList() |
| | | if (row && row.id) { |
| | | this.$refs.operaCategoryWindow.getDetail(row.id) |
| | | } |
| | | }) |
| | | }, |
| | | deleteById(row) { |
| | | this.$confirm(`æ¨ç¡®è®¤è¦å é¤è¯¥åç±»å`, '温馨æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteById(row.id).then(res => { |
| | | this.getList() |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | getList() { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { ...filters, type: 5 }, |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç±»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æå±åç±»" prop="parentId"> |
| | | <el-select :disabled="form.id" v-model="form.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åç±»"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 6)" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { create, fetchCateList, getInfoById } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'OperaCategoryWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | parentId: null, |
| | | name: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | type: 5 |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥äºçº§åç±»åç§°', trigger: 'blur' } |
| | | ], |
| | | status: [ |
| | | { required: true, message: 'è¯·éæ©æ¯å¦å¯ç¨', trigger: 'change' } |
| | | ] |
| | | }, |
| | | dataList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | api: '/business/category', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | fetchCateList({ type: 5 }).then(res => { |
| | | this.dataList = res || [] |
| | | |
| | | }) |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.$emit('close') |
| | | }, |
| | | getDetail(id) { |
| | | getInfoById(id).then(res => { |
| | | this.form = res |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾è®¾å¤' : 'æ°å»ºè®¾å¤'" :confirmWorking="subLoading" :visible.sync="isShowModal" width="600px" @close="close" |
| | | @confirm="handleSub"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <el-form-item label="设å¤ç¼ç " prop="code"> |
| | | <el-input v-model="param.code" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤åç§°" prop="name"> |
| | | <el-input v-model="param.name" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤åå·" prop=""> |
| | | <el-input v-model="param.modelNo" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤åç±»" prop=""> |
| | | <el-cascader v-model="param.areaIds" @change="changeSel" placeholder="è¯·éæ©å·¡æ£åºå" clearable :options="cateList" |
| | | :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList', |
| | | checkStrictly: true |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç®¡çå" prop=""> |
| | | <el-select v-model="param.realName" filterable clearable> |
| | | <el-option value="0" label="xxx"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå¨ä½ç½®" prop=""> |
| | | <el-input v-model="param.addr" placeholder="请è¾å
¥" v-trim /> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="ä¾åºå" prop=""> |
| | | <el-input v-model="param.company" placeholder="请è¾å
¥" v-trim /> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´å
容" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.content" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç¶æ" prop=""> |
| | | <el-select v-model="param.status" filterable clearable> |
| | | <el-option value="0" label="æ£å¸¸"></el-option> |
| | | <el-option value="1" label="æå"></el-option> |
| | | <el-option value="2" label="æ¥åº"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç
§ç" prop=""> |
| | | <UploadAvatarImage :file="{ 'imgurlfull': param.imgurlfull, 'imgurl': param.imgurl }" |
| | | :uploadData="{ folder: 'projects' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" |
| | | @uploadBegin="isUploading = true" /> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { fetchList } from '@/api/business/category' |
| | | import { create, updateById } from '@/api/Inspection/device' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: {}, |
| | | cateList: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | code: [{ required: true, message: '请è¾å
¥' }] |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | if (res.code == 200) { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | } |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | initData() { |
| | | fetchList({ |
| | | model: { type: 5 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | }) |
| | | |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.param, 'catePId', '') |
| | | this.$set(this.param, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$set(this.param, 'imgurl', file.imgurl) |
| | | this.$set(this.param, 'imgurlfull', file.imgurlfull) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="param.id ? 'ç¼è¾è¿ç»´è®°å½' : 'æ°å»ºè¿ç»´è®°å½'" :confirmWorking="subLoading" :visible.sync="isShowModal" |
| | | width="600px" @close="close" @confirm="handleSub"> |
| | | <el-form :model="param" ref="paramRef" :rules="rules"> |
| | | <el-form-item label="éæ©è®¾å¤" prop="code"> |
| | | <el-select v-model="param.deviceId" filterable clearable> |
| | | <el-option v-for="item in deviceList" :value="item" :label="item"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´äººå" prop="code"> |
| | | <el-select v-model="param.realName" filterable clearable> |
| | | <el-option v-for="item in 10" :value="item" :label="item"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="设å¤ç¶æ" prop=""> |
| | | <el-select v-model="param.status" filterable clearable> |
| | | <el-option value="0" label="æ£å¸¸"></el-option> |
| | | <el-option value="1" label="æå"></el-option> |
| | | <el-option value="2" label="æ¥åº"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç°åºç
§ç" prop=""> |
| | | <div class="file_list"> |
| | | <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true" :action="uploadImgUrl" |
| | | :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError" |
| | | :before-upload="beforeUpload"> |
| | | <div class="upload_wrap"> |
| | | <i class="el-icon-plus avatar-uploader-icon"></i> |
| | | <div>å¾ç/è§é¢</div> |
| | | </div> |
| | | </el-upload> |
| | | <div v-for="(item, i) in fileList" :key="i" class="item"> |
| | | <i @click="handleDelImg(i)" class="el-icon-error close"></i> |
| | | <el-image :src="item.fileurlFull" :preview-src-list="[item.fileurlFull]" v-if="item.type == 0" |
| | | class="img"></el-image> |
| | | <video :src="item.fileurlFull" controls v-if="item.type == 1" class="img"></video> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´å¤æ³¨" prop=""> |
| | | <el-input type="textarea" :rows="4" v-model="param.remark" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | <el-form-item label="è¿ç»´æ¶é´" prop=""> |
| | | <el-date-picker v-model="param.dealDate" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetime"></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | |
| | | |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage' |
| | | import { fetchList } from '@/api/Inspection/device' |
| | | import { Message, Loading } from 'element-ui' |
| | | export default { |
| | | components: { GlobalWindow, UploadAvatarImage }, |
| | | data() { |
| | | return { |
| | | isShowModal: false, |
| | | subLoading: false, |
| | | param: {}, |
| | | deviceList: [], |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥' }], |
| | | code: [{ required: true, message: '请è¾å
¥' }] |
| | | }, |
| | | |
| | | loadingInstance: null, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | | fileList: [], |
| | | uploadData: { |
| | | folder: 'HIDDEN_DANGER_FILE' |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | const { param, subLoading } = this |
| | | this.$refs['paramRef'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = param.id ? updateById : create |
| | | this.subLoading = true |
| | | fn(param).then(res => { |
| | | if (res.code == 200) { |
| | | this.subLoading = false |
| | | this.$emit('success') |
| | | Message.success('ä¿åæå') |
| | | this.close() |
| | | } |
| | | }).catch(() => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | initData() { |
| | | fetchList({ |
| | | model: {}, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.deviceList = res || [] |
| | | }) |
| | | |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 1) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', '') |
| | | } else if (e && e.length == 2) { |
| | | this.$set(this.param, 'catePId', e[0]) |
| | | this.$set(this.param, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.param, 'catePId', '') |
| | | this.$set(this.param, 'cateId', '') |
| | | } |
| | | this.search() |
| | | }, |
| | | beforeUpload(file) { |
| | | if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { |
| | | this.$message.error('请ä¸ä¼ æ£ç¡®çè§é¢/å¾çæ ¼å¼') |
| | | return false |
| | | } |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | }, |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if (this.loadingInstance) { |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | console.log('file', file) |
| | | const item = file.data[0] |
| | | if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { |
| | | this.fileList.push({ |
| | | type: 1, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } else { |
| | | this.fileList.push({ |
| | | type: 0, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } |
| | | console.log('file', this.fileList) |
| | | // this.$set(this.param, 'faceImg', file.imgurl) |
| | | // this.$set(this.param, 'faceImgUrl', file.imgurlfull) |
| | | }, |
| | | handleDelImg(i) { |
| | | this.fileList.splice(i, 1) |
| | | }, |
| | | close() { |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .file_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | .avatar-uploader{ |
| | | width: 92px; |
| | | height: 92px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border: 1px dashed #d9d9d9; |
| | | } |
| | | .item { |
| | | width: 92px; |
| | | max-height: 92px; |
| | | margin-left: 10px; |
| | | position: relative; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .close { |
| | | font-size: 20px; |
| | | position: absolute; |
| | | right: -10px; |
| | | top: -10px; |
| | | z-index: 111; |
| | | color: red; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .img { |
| | | width: 92px; |
| | | max-height: 92px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="code" label="设å¤ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="设å¤åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="" label="设å¤åç±»" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="modelNo" label="设å¤åå·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="realName" label="管çå" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="company" label="设å¤ä¾åºå" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="status" label="设å¤ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:category:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/deviceEdit' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: '设å¤åç§°', |
| | | placeholder: '请è¾å
¥è®¾å¤åç§°/ç¼ç ' |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'select', |
| | | label: '设å¤ç¶æ', |
| | | options: [ |
| | | { value: 0, label: 'æ£å¸¸' }, |
| | | { value: 1, label: 'æå' }, |
| | | { value: 2, label: 'æ¥åº' }, |
| | | ] |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { |
| | | ...filters, |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:ywpatrolline:create']">æ°å»º</el-button> |
| | | <el-button type="primary" @click="handleEx" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="" label="è¿ç»´äºº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="设å¤ç¼å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" label="设å¤åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="stautsName" label="设å¤ç¶æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="remark" label="è¿ç»´å¤æ³¨" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" icon="el-icon-edit" |
| | | v-permissions="['business:category:update']">æ¥ç</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <Edit v-if="showEdit" ref="EditRef" @success="getList" @close="showEdit = false" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import Edit from './components/maintain.vue' |
| | | import { fetchList, deleteById } from '@/api/Inspection/device' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | showEdit: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'name', |
| | | type: 'input', |
| | | label: '设å¤åç§°', |
| | | placeholder: '请è¾å
¥è®¾å¤åç§°/ç¼ç ' |
| | | }, |
| | | { |
| | | filed: 'selTime', |
| | | type: 'datetimerange', |
| | | label: 'å建æ¶é´' |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { |
| | | ...filters, |
| | | }, |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.stautsName = item.status == 0 ? 'æ£å¸¸' : item.status == 1 ? 'æå' : 'æ¥åº' |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | |
| | | }, |
| | | handleEdit(row) { |
| | | this.showEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.EditRef.isShowModal = true |
| | | if (row && row.id) { |
| | | this.$refs.EditRef.getDetail(row.id) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleDetail() { |
| | | |
| | | }, |
| | | handleDel(row) { |
| | | let message = `确认å é¤è¯¥è®°å½å?` |
| | | this.$dialog.deleteConfirm(message) |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | deleteById(row.id) |
| | | .then(() => { |
| | | this.$tip.apiSuccess('å 餿å') |
| | | this.getList() |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | this.getList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
| | |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywbuilding:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywbuilding:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywbuilding:create', 'business:ywbuilding:delete']"> |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" v-permissions="['business:ywbuilding:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywbuilding:delete']">å é¤</el-button></li> |
| | | <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" |
| | | v-permissions="['business:ywbuilding:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywbuilding:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="楼å®åç§°" min-width="100px"> |
| | | <template v-slot="scope"> |
| | |
| | | <el-table-column prop="cqArea" label="管çé¢ç§¯(m²)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="" label="æ¿é´æ»æ°(é´)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="" label="å¯æåæ¿æºæ°é(é´)" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywbuilding:update', 'business:ywbuilding:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <el-table-column v-if="containPermissions(['business:ywbuilding:update', 'business:ywbuilding:delete'])" |
| | | label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="editClick(row)" icon="el-icon-edit" v-permissions="['business:ywbuilding:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="editFloor(row)" v-permissions="['business:ywbuilding:update']">楼å±ç®¡ç</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywbuilding:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="editClick(row)" icon="el-icon-edit" |
| | | v-permissions="['business:ywbuilding:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="editFloor(row)" |
| | | v-permissions="['business:ywbuilding:update']">楼å±ç®¡ç</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:ywbuilding:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="æå±é¡¹ç®" prop="projectId" clearable placeholder="è¯·éæ©é¡¹ç®"> |
| | | <el-select v-model="form.projectId"> |
| | | <el-select v-model="form.projectId" filterable clearable> |
| | | <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç±»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æå±åç±»" prop="parentId"> |
| | | <el-select :disabled="form.id" v-model="form.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åç±»"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="form.status" placeholder="è¯·éæ©"> |
| | | <el-option label="å¯ç¨" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input type="textarea" v-model="form.remark" placeholder="请è¾å
¥å¤æ³¨" v-trim /> |
| | | <el-form-item label="æåºç (ååº)" prop="sortnum"> |
| | | <el-input v-model="form.sortnum" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 6)" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | name: '', |
| | | remark: '', |
| | | status: '', |
| | | type: 1 |
| | | sortnum: '', |
| | | type: 3 |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | fetchCateList({}).then(res => { |
| | | fetchCateList({ type: 3 }).then(res => { |
| | | this.dataList = res || [] |
| | | |
| | | }) |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="form.creator" placeholder="请è¾å
¥å建人ç¼ç " v-trim/> |
| | | <el-form-item label="ä½ç½®ç±»å" prop="areaType"> |
| | | <el-select v-model="form.areaType"> |
| | | <el-option label="室å
ç»´ä¿®" value="0"></el-option> |
| | | <el-option label="å
Œ
±ç»´ä¿®" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´"></el-date-picker> |
| | | <el-form-item label="æ¥ä¿®åºå"> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="form.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="form.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ é¢" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请è¾å
¥æ é¢" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="请è¾å
¥å¤æ³¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0å¯ç¨ 1ç¦ç¨" prop="status"> |
| | | <el-input v-model="form.status" placeholder="请è¾å
¥ç¶æ 0å¯ç¨ 1ç¦ç¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç " prop="sortnum"> |
| | | <el-input v-model="form.sortnum" placeholder="请è¾å
¥æåºç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æ
åµè¯´æ" prop="content"> |
| | | <el-input v-model="form.content" placeholder="请è¾å
¥æ
åµè¯´æ" v-trim/> |
| | | <el-form-item label="åç±»" prop="cateId"> |
| | | <el-select v-model="form.cateId"> |
| | | <el-option label="" value=""></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸é¨æ¶é´" prop="getDate"> |
| | | <el-date-picker v-model="form.getDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ä¸é¨æ¶é´"></el-date-picker> |
| | | <el-date-picker type="datetime" v-model="form.getDate" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="è¯·éæ©ä¸é¨æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æå±é¡¹ç®ç¼ç ï¼å
³èyw_project)" prop="projectId"> |
| | | <el-input v-model="form.projectId" placeholder="请è¾å
¥æå±é¡¹ç®ç¼ç ï¼å
³èyw_project)" v-trim/> |
| | | <el-form-item label="ç°åºå¾ç"> |
| | | <div class="file_list"> |
| | | <el-upload class="avatar-uploader" :data="uploadData" :auto-upload="true" :action="uploadImgUrl" |
| | | :show-file-list="false" :on-success="uploadAvatarSuccess" :on-error="uploadError" |
| | | :before-upload="beforeUpload"> |
| | | <div class="upload_wrap"> |
| | | <i class="el-icon-plus avatar-uploader-icon"></i> |
| | | <div>å¾ç/è§é¢</div> |
| | | </div> |
| | | </el-upload> |
| | | <div v-for="(item, i) in fileList" :key="i" class="item"> |
| | | <i @click="handleDelImg(i)" class="el-icon-error close"></i> |
| | | <el-image :src="item.fileurlFull" :preview-src-list="[item.fileurlFull]" v-if="item.type == 0" |
| | | class="img"></el-image> |
| | | <video :src="item.fileurlFull" controls v-if="item.type == 1" class="img"></video> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æå±é¡¹ç®ç¼ç ï¼å
³èyw_building)" prop="buildingId"> |
| | | <el-input v-model="form.buildingId" placeholder="请è¾å
¥æå±é¡¹ç®ç¼ç ï¼å
³èyw_building)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="æå±æ¿é´ç¼ç ï¼å
³èyw_room)" prop="roomId"> |
| | | <el-input v-model="form.roomId" placeholder="请è¾å
¥æå±æ¿é´ç¼ç ï¼å
³èyw_room)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ææ¥äººç¼ç " prop="userId"> |
| | | <el-input v-model="form.userId" placeholder="请è¾å
¥ææ¥äººç¼ç " v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»çµè¯" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请è¾å
¥èç³»çµè¯" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ææ¥æ¶é´" prop="submitDate"> |
| | | <el-date-picker v-model="form.submitDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ææ¥æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥ååç±»ç¼ç (å
³ècategoryï¼" prop="cateId"> |
| | | <el-input v-model="form.cateId" placeholder="请è¾å
¥å·¥ååç±»ç¼ç (å
³ècategoryï¼" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¿ä¿®åºåç±»å 0室å
ç»´ä¿® 1å
Œ
񆧆" prop="areaType"> |
| | | <el-input v-model="form.areaType" placeholder="请è¾å
¥ä¿ä¿®åºåç±»å 0室å
ç»´ä¿® 1å
Œ
񆧆" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥åç¼å·" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥å·¥åç¼å·" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å¤çç¶æ 0å¾
å¤ç 1已忴¾ 2å·²å¤ç" prop="dealStatus"> |
| | | <el-input v-model="form.dealStatus" placeholder="请è¾å
¥å¤çç¶æ 0å¾
å¤ç 1已忴¾ 2å·²å¤ç" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åæ´¾äººç¼ç (å
³èsystem_user)" prop="dispatchUserId"> |
| | | <el-input v-model="form.dispatchUserId" placeholder="请è¾å
¥å派人ç¼ç (å
³èsystem_user)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åæ´¾æ¶é´" prop="dispatchDate"> |
| | | <el-date-picker v-model="form.dispatchDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥åæ´¾æ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæ´¾å¤ç说æ" prop="dispatchInfo"> |
| | | <el-input v-model="form.dispatchInfo" placeholder="请è¾å
¥åæ´¾å¤ç说æ" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å¤ç人ç¼ç (å
³èsystem_user)" prop="dealUserId"> |
| | | <el-input v-model="form.dealUserId" placeholder="请è¾å
¥å¤ç人ç¼ç (å
³èsystem_user)" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å¤çæ¶é´" prop="dealDate"> |
| | | <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å¤çæ¶é´"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å¤ç夿³¨" prop="dealInfo"> |
| | | <el-input v-model="form.dealInfo" placeholder="请è¾å
¥å¤ç夿³¨" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="å¤çæ¹å¼ 0ææ´¾åå¤ç 1ç´æ¥åå¤" prop="dealType"> |
| | | <el-input v-model="form.dealType" placeholder="请è¾å
¥å¤çæ¹å¼ 0ææ´¾åå¤ç 1ç´æ¥åå¤" v-trim/> |
| | | <el-form-item label="æ
åµè¯´æ" prop="content"> |
| | | <el-input type="textarea" :rows="4" v-model="form.content" placeholder="请è¾å
¥æ
åµè¯´æ" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- --> |
| | | |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { Loading } from 'element-ui' |
| | | export default { |
| | | name: 'OperaYwWorkorderWindow', |
| | | extends: BaseOpera, |
| | |
| | | phone: '', |
| | | submitDate: '', |
| | | cateId: '', |
| | | areaType: '', |
| | | areaType: '0', |
| | | code: '', |
| | | dealStatus: '', |
| | | dispatchUserId: '', |
| | |
| | | dealInfo: '', |
| | | dealType: '' |
| | | }, |
| | | loadingInstance: null, |
| | | // éªè¯è§å |
| | | rules: { |
| | | } |
| | | }, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | | fileList: [], |
| | | uploadData: { |
| | | folder: 'HIDDEN_DANGER_FILE' |
| | | }, |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | api: '/workorder/ywWorkorder', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | beforeUpload (file) { |
| | | if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg','image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { |
| | | this.$message.error('请ä¸ä¼ æ£ç¡®çè§é¢/å¾çæ ¼å¼') |
| | | return false |
| | | } |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | }, |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | }, |
| | | uploadAvatarSuccess (file) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | console.log('file', file) |
| | | const item = file.data[0] |
| | | if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { |
| | | this.fileList.push({ |
| | | type: 1, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } else { |
| | | this.fileList.push({ |
| | | type: 0, |
| | | fileurl: item.imgaddr, |
| | | fileurlFull: item.url |
| | | }) |
| | | } |
| | | console.log('file', this.fileList) |
| | | // this.$set(this.param, 'faceImg', file.imgurl) |
| | | // this.$set(this.param, 'faceImgUrl', file.imgurlfull) |
| | | }, |
| | | handleDelImg (i) { |
| | | this.fileList.splice(i, 1) |
| | | }, |
| | | close(){ |
| | | this.isShowModal = false |
| | | this.$emit('close') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .file_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | .avatar-uploader{ |
| | | width: 92px; |
| | | height: 92px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border: 1px dashed #d9d9d9; |
| | | } |
| | | .item { |
| | | width: 92px; |
| | | max-height: 92px; |
| | | margin-left: 10px; |
| | | position: relative; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .close { |
| | | font-size: 20px; |
| | | position: absolute; |
| | | right: -10px; |
| | | top: -10px; |
| | | z-index: 111; |
| | | color: red; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .img { |
| | | width: 92px; |
| | | max-height: 92px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </ul> |
| | | <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search" |
| | | :data="dataList" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column prop="name" label="åç±»åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status === 0">å¯ç¨</span> |
| | | <span v-if="row.status === 1">ç¦ç¨</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="å·¥ååç±»" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="parentName" label="æå±åç±»" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="sortnum" label="æåºç " min-width="100px"></el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="æä½" |
| | | min-width="120" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { ...filters }, |
| | | model: { ...filters, type: 3 }, |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |
| | | }).then(res => { |
| | |
| | | <TableLayout :permissions="['business:ywworkorder:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="æå±é¡¹ç®ç¼ç ï¼å
³èyw_project)" prop="projectId"> |
| | | <el-input v-model="searchForm.projectId" placeholder="请è¾å
¥æå±é¡¹ç®ç¼ç ï¼å
³èyw_project)" @keypress.enter.native="search"></el-input> |
| | | <el-form-item prop="areaType"> |
| | | <el-select v-model="searchForm.areaType"> |
| | | <el-option label="室å
ç»´ä¿®" value="0"></el-option> |
| | | <el-option label="å
Œ
±ç»´ä¿®" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå±é¡¹ç®ç¼ç ï¼å
³èyw_building)" prop="buildingId"> |
| | | <el-input v-model="searchForm.buildingId" placeholder="请è¾å
¥æå±é¡¹ç®ç¼ç ï¼å
³èyw_building)" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="è¯·éæ©æ¥ä¿®åºå" prop="buildingId"> |
| | | <el-input v-model="searchForm.buildingId" placeholder="请è¾å
¥æå±é¡¹ç®ç¼ç ï¼å
³èyw_building)" |
| | | @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå±æ¿é´ç¼ç ï¼å
³èyw_room)" prop="roomId"> |
| | | <el-input v-model="searchForm.roomId" placeholder="请è¾å
¥æå±æ¿é´ç¼ç ï¼å
³èyw_room)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥ååç±»ç¼ç (å
³ècategoryï¼" prop="cateId"> |
| | | <el-input v-model="searchForm.cateId" placeholder="请è¾å
¥å·¥ååç±»ç¼ç (å
³ècategoryï¼" @keypress.enter.native="search"></el-input> |
| | | <el-form-item prop="cateId"> |
| | | <el-input v-model="searchForm.cateId" placeholder="æ¥ä¿®ç©åç±»å«" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywworkorder:create', 'business:ywworkorder:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('æ°å»ºå·¥å')" icon="el-icon-plus" v-permissions="['business:ywworkorder:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">å é¤</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('æ°å»ºå·¥å')" icon="el-icon-plus" |
| | | v-permissions="['business:ywworkorder:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:ywworkorder:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | |
| | | |
| | | |
| | | <el-table-column prop="projectId" label="æå±é¡¹ç®ç¼ç ï¼å
³èyw_project)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="buildingId" label="æå±é¡¹ç®ç¼ç ï¼å
³èyw_building)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roomId" label="æå±æ¿é´ç¼ç ï¼å
³èyw_room)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="userId" label="ææ¥äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="èç³»çµè¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="submitDate" label="ææ¥æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="cateId" label="å·¥ååç±»ç¼ç (å
³ècategoryï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaType" label="ä¿ä¿®åºåç±»å 0室å
ç»´ä¿® 1å
Œ
񆧆" min-width="100px"></el-table-column> |
| | | |
| | | <el-table-column prop="dealStatus" label="å¤çç¶æ 0å¾
å¤ç 1已忴¾ 2å·²å¤ç" min-width="100px"></el-table-column> |
| | | |
| | | <el-table-column prop="dealUserId" label="å¤ç人ç¼ç (å
³èsystem_user)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealType" label="å¤çæ¹å¼ 0ææ´¾åå¤ç 1ç´æ¥åå¤" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywworkorder:update', 'business:ywworkorder:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe> |
| | | <el-table-column prop="areaType" label="ä½ç½®ç±»å" min-width="80px"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.areaType == 0">室å
è£
ä¿®</span> |
| | | <span v-if="scope.row.areaType == 1">å
Œ
񆧆</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="æ¥ä¿®åºå" min-width="100px"></el-table-column> |
| | | <el-table-column prop="cateName" label="æ¥ä¿®ç©åç±»å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="userName" label="䏿¥äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="submitDate" label="䏿¥æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="å¤ç人" min-width="100px"></el-table-column> |
| | | <el-table-column label="å¤çç»æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwWorkorderWindow.open('ç¼è¾å·¥å', row)" icon="el-icon-edit" v-permissions="['business:ywworkorder:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">å é¤</el-button> |
| | | <span v-if="row.dealStatus == 0">å¾
ææ´¾</span> |
| | | <span v-if="row.dealStatus == 1">å·²ææ´¾</span> |
| | | <span v-if="row.dealStatus == 2">å·²å¤ç</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywworkorder:update'])" |
| | | label="æä½" min-width="80" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <span class="primaryColor cu">æ¥ç详æ
</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | areaType: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | |
| | | phone: '', |
| | | submitDate: '', |
| | | cateId: '', |
| | | areaType: '', |
| | | code: '', |
| | | dealStatus: '', |
| | | dispatchUserId: '', |