Merge remote-tracking branch 'origin/master'
| | |
| | | # ç产ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface' |
| | | # VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface' |
| | |
| | | # æµè¯ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface' |
| | | # VUE_APP_API_URL = 'http://192.168.5.13/gateway_interface' |
| | |
| | | trim: true |
| | | }) |
| | | } |
| | | // ä¸çº§åç±»æ¥è¯¢ |
| | | export function fetchCateList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/category/list', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/category/create', data) |
| | | } |
| | | |
| | | // 详æ
|
| | | export function getInfoById (id) { |
| | | return request.get('/visitsAdmin/cloudService/business/category/' + id) |
| | | } |
| | | // ä¿®æ¹ |
| | | export function updateById (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/category/updateById', data) |
| | |
| | | export function companySync (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/syncAll', data) |
| | | } |
| | | // å页æ¥è¯¢ |
| | | export function companyGetList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/company/page', data) |
| | | } |
| | | |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | |
| | | export function platformJobPage(data) { |
| | | return request.post('/visitsAdmin/cloudService/business/platformJob/page', data) |
| | | } |
| | | // ç»è®¡æå°ä½ä¸ä»»å¡ å页å表 |
| | | export function platformLogPage(data) { |
| | | return request.post('/visitsAdmin/cloudService/business/platformLog/page', data) |
| | | } |
| | | // æå°ä½ä¸ç»è®¡ å页å表 |
| | | export function platformWorkReportPage(data) { |
| | | return request.post('/visitsAdmin/cloudService/business/platform/platformWorkReportPage', data) |
| | |
| | | .df{ |
| | | display: flex; |
| | | } |
| | | .df_center{ |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .df_ac{ |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="500px" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" width="500px" @close="close" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="车çå·" prop="code"> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥è½¦çå·" v-trim/> |
| | |
| | | <el-radio :label="2" >å
¶ä»</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©åç±»ï¼" prop="type"> |
| | | <el-cascader v-model="form.cateId" @change="changeSel" :options="cateList" :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList', |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©ç»ç»ï¼" prop="groupId"> |
| | | <el-select v-model="form.groupId" @change="changeSel" clearable filterable placeholder="è¯·éæ©"> |
| | | <el-option v-for="item in companyList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="éæ©è½¦ä¸»ï¼" prop="memberId"> |
| | | <el-select v-model="form.memberId" clearable filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in memberList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { allList } from '@/api/business/member' |
| | | import { fetchList } from '@/api/business/category.js' |
| | | import { create, updateById } from '@/api/business/cars' |
| | | import { companyGetList } from '@/api/business/company' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'OperaInternalCompanyWindow', |
| | | extends: BaseOpera, |
| | |
| | | id: null, |
| | | code: null, |
| | | memberId: null, |
| | | type: 0 |
| | | type: 0, |
| | | groupId: null, |
| | | cateId: [], |
| | | }, |
| | | cateList: [], |
| | | companyList: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | code: [ |
| | | { required: true, message: '请è¾å
¥è½¦çå·' } |
| | | ], |
| | | code: [{ required: true, message: '请è¾å
¥è½¦çå·' }], |
| | | groupId: [{ required: true, message: 'è¯·éæ©ç»ç»' }], |
| | | type: [ |
| | | { required: true, message: 'è¯·éæ©è½¦è¾ç±»å' } |
| | | ] |
| | |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.loadMember() |
| | | this.getCate() |
| | | this.getCompany() |
| | | // æ°å»ºç»ç» |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | // this.$nextTick(() => { |
| | | // for (const key in this.form) { |
| | | // this.form[key] = target[key] |
| | | // } |
| | | // }) |
| | | }, |
| | | changeSel() { |
| | | const { form } = this |
| | | if (form.groupId) { |
| | | this.loadMember() |
| | | } |
| | | }, |
| | | confirm() { |
| | | console.log('form', this.form.cateId) |
| | | const { form } = this |
| | | if(form.cateId && form.cateId.length == 2){ |
| | | |
| | | }else{ |
| | | return Message.error('è¯·éæ©äºçº§åç±»') |
| | | } |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | let fn = form.id ? updateById : create |
| | | fn({ |
| | | ...form, |
| | | cateId: form.cateId[1] |
| | | }).then(res => { |
| | | Message.success('ä¿åæå') |
| | | this.visible = false |
| | | this.$emit('success') |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.$emit('close') |
| | | }, |
| | | handleChange(val) { |
| | | |
| | | }, |
| | | getCate() { |
| | | fetchList({ |
| | | model: {}, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | |
| | | }) |
| | | }, |
| | | getCompany() { |
| | | companyGetList({ |
| | | model: {}, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.companyList = res.records || [] |
| | | |
| | | }) |
| | | }, |
| | | loadMember () { |
| | | const { form } = this |
| | | allList({ |
| | | type: 2 |
| | | type: 2, |
| | | companyId: form.groupId, |
| | | |
| | | }) |
| | | .then(res => { |
| | | this.memberList = res |
| | |
| | | 1.请å
ä¸è½½æä»¶æ¨¡æ¿ï¼å¹¶æç
§æ¨¡æ¿è¦å»å¡«åè¡¨æ ¼å
容;<br> |
| | | </p> |
| | | <el-form class="demo-form-inline" > |
| | | <el-form-item label="人åå¹è®æåå" required> |
| | | <el-form-item label="人ååå" required> |
| | | <div style="width: 100%;display: flex;align-items: center;"> |
| | | <el-button type="primary" :loading="importing" @click="clickRef">ç¹å»ä¸ä¼ </el-button> |
| | | <el-button type="text" @click="exportTemplate">ç¹å»ä¸è½½æ¨¡ç.EXCEL</el-button> |
| | |
| | | <GlobalWindow |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | width="582px" |
| | | width="620px" |
| | | title="é
ç½®ç¨æ·è§è²" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip" v-if="user != null">ä¸ºç¨æ· <em>{{user.realname}}</em> é
ç½®è§è²</p> |
| | | <p class="tip-warn"><i class="el-icon-warning"></i>æéï¼è§è²é
ç½®åééæ°ç»å½åçæ</p> |
| | | <div class="df_center"> |
| | | <el-transfer |
| | | v-model="selectedIds" |
| | | :titles="['æªææè§è²', 'å·²ææè§è²']" |
| | |
| | | }" |
| | | :data="roles"> |
| | | </el-transfer> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人å导å
¥', searchForm.companyType)" |
| | | icon="el-icon-plus" v-permissions="['business:member:create']">人å导å
¥</el-button></li> |
| | | <li><el-button type="primary" |
| | | @click="$refs.OperaTrainTimeImportWindow.open('å¹è®æå¯¼å
¥', department, searchForm.companyType)" |
| | | @click="$refs.OperaTrainTimeImportWindow.open('å¹è®æææå¯¼å
¥', department, searchForm.companyType)" |
| | | icon="el-icon-plus" v-permissions="['business:traintime:create']">å¹è®æå¯¼å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:member:delete']">æ¹éå é¤</el-button></li> |
| | |
| | | <el-table-column prop="platformGroupName" label="æå°ç»" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeFront" label="车åçç
§å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeBack" label="车åçç
§å·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="startDate" label="ä½ä¸å¼å§" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="doneDate" label="ä½ä¸ç»æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="ä½ä¸æ¶é¿" min-width="100" show-overflow-tooltip /><el-table-column prop="name" |
| | | <el-table-column prop="param1" label="ä½ä¸å¼å§" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="param2" label="ä½ä¸ç»æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="ä½ä¸æ¶é¿" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="name" |
| | | label="è¿è¾åå·/ååå·" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.billCode || scope.row.contractNum }}</span> |
| | |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { platformJobPage, getPlatformGroupList } from '@/api' |
| | | import { platformLogPage, getPlatformGroupList } from '@/api' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | platformJobPage({ |
| | | platformLogPage({ |
| | | model: { |
| | | ...filters, |
| | | queryStatus: '5,6,9,10', |
| | | 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: 'START_DATE' }], |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.workTime, 'seconds').format('Hæ¶måsç§') |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | |
| | | <el-form-item label="" prop="code" title="车çå·"> |
| | | <el-input v-model="searchForm.code" clearable placeholder="车çå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="memberName" title="车主å§å/ææºå·"> |
| | | <el-input v-model="searchForm.memberName" clearable placeholder="车主å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="" prop="memberName" title="车主信æ¯"> |
| | | <el-input v-model="searchForm.memberName" clearable placeholder="车主信æ¯" |
| | | @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="companyName" title="车主é¨é¨åç§°"> |
| | | <el-input v-model="searchForm.companyName" clearable placeholder="车主é¨é¨åç§°" @keypress.enter.native="search"></el-input> |
| | | <!-- <el-form-item label="" prop="cateName" title="车è¾åç±»åç§°"> |
| | | <el-input v-model="searchForm.cateName" clearable placeholder="车è¾åç±»åç§°" |
| | | @keypress.enter.native="search"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="" prop="companyName" title="车主ç»ç»åç§°"> |
| | | <el-input v-model="searchForm.companyName" clearable placeholder="车主ç»ç»åç§°" |
| | | @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="authStatus" title="æ¯å¦ææ"> |
| | | <el-select v-model="searchForm.authStatus" @change="search" clearable placeholder="æ¯å¦ææ"> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:cars:create', 'business:parkBook:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaCarsWindow.open('æ°å»ºè½¦è¾')" icon="el-icon-plus" v-permissions="['business:cars:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="startEmpowerBatch" icon="el-icon-plus" v-permissions="['business:parkbook:create']">ä¸åææ</el-button></li> |
| | | <li><el-button type="primary" @click="handleEdit" icon="el-icon-plus" |
| | | v-permissions="['business:cars:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="startEmpowerBatch" icon="el-icon-plus" |
| | | v-permissions="['business:parkbook:create']">ä¸åææ</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="code" label="车çå·" min-width="100px"></el-table-column> |
| | | <el-table-column label="车è¾ç±»å" min-width="100px"> |
| | | <el-table-column label="车è¾ç±»å" min-width="120px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type == 0" >宿³°å
¬å¡è½¦</span> |
| | | <span v-if="row.type == 1">宿³°èªæç©æµè½¦</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="memberName" label="车主å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="memberPhone" label="è½¦ä¸»ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="cateName" label="车è¾åç±»" min-width="160px"></el-table-column> |
| | | <el-table-column prop="companyName" label="车主ç»ç»" min-width="200px"></el-table-column> |
| | | <el-table-column label="æ¯å¦ææ" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.parkBookList && row.parkBookList.length" > |
| | | <span v-for="item in row.parkBookList" :key="item.id" style="display: block"> |
| | | <span :style="(item.hkStatus== 0?'color:#2080f7':(item.hkStatus== 1?'color:green':(item.hkStatus== 2?'color:red':'')))">ã{{item.hkStatus== 0?'çå¾
ä¸å':(item.hkStatus== 1?'ä¸åæå':(item.hkStatus== 2?'ä¸å失败':''))}}ã </span>{{item.parksName}} |
| | | <span |
| | | :style="(item.hkStatus == 0 ? 'color:#2080f7' : (item.hkStatus == 1 ? 'color:green' : (item.hkStatus == 2 ? 'color:red' : '')))">ã{{ item.hkStatus == |
| | | 0 ? 'çå¾
ä¸å' : (item.hkStatus == 1 ? 'ä¸åæå' : (item.hkStatus == 2?'ä¸å失败':''))}}ã </span>{{ item.parksName }} |
| | | </span> |
| | | </div> |
| | | <span v-if="row.parkBookList ==null ||row.parkBookList.length ==0">-</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="ä¸åæææ" align="center" min-width="170px"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.authStatus !=null && row.authStatus == 1 && row.parkBookList!=null && row.parkBookList.length>0"> |
| | | <div |
| | | v-if="row.authStatus != null && row.authStatus == 1 && row.parkBookList != null && row.parkBookList.length > 0"> |
| | | <div v-if="!row.startTime || !row.endTime">é¿æææ</div> |
| | | <div v-else> |
| | | <span style="color: green">èµ·ï¼{{row.startTime}}</span><br/> |
| | |
| | | <el-table-column prop="editDate" label="æä½æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])" |
| | | label="æä½" |
| | | min-width="200" |
| | | align="center" |
| | | fixed="right" |
| | | > |
| | | label="æä½" min-width="200" align="center" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaCarsWindow.open('ç¼è¾è½¦è¾ä¿¡æ¯',row)" v-permissions="['business:cars:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.operaCarAuthWindow.open('ä¸åææ',[row.id],[row.code])" v-permissions="['business:parkbook:create']">ä¸åææ</el-button> |
| | | <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:empower:delete']">å é¤</el-button> |
| | | <el-button type="text" icon="el-icon-edit" @click="handleEdit(row)" |
| | | v-permissions="['business:cars:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-edit" |
| | | @click="$refs.operaCarAuthWindow.open('ä¸åææ', [row.id], [row.code])" |
| | | v-permissions="['business:parkbook:create']">ä¸åææ</el-button> |
| | | <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" |
| | | v-permissions="['business:empower: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> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCarAuthWindow ref="operaCarAuthWindow" @success="handlePageChange"/> |
| | | <OperaCarsWindow ref="operaCarsWindow" @success="handlePageChange"/> |
| | | <OperaCarsWindow v-if="isShowEdit" ref="operaCarsWindow" @close="isShowEdit = false" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | companyName: '', |
| | | type:null, |
| | | authStatus:null |
| | | } |
| | | }, |
| | | isShowEdit: false |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handleEdit(row) { |
| | | this.isShowEdit = true |
| | | let str = row && row.id ? 'ç¼è¾è½¦è¾' : 'æ°å»ºè½¦è¾' |
| | | this.$nextTick(() => { |
| | | this.$refs.operaCarsWindow.open(str, row) |
| | | if (row && row.id) { |
| | | let form = { ...row, cateId: []} |
| | | if(row.catePId){ form.cateId.push(row.catePId) } |
| | | if(row.cateId){ form.cateId.push(row.cateId) } |
| | | this.$refs.operaCarsWindow.form = form |
| | | this.$refs.operaCarsWindow.loadMember() |
| | | } |
| | | }) |
| | | }, |
| | | // åæ¥ä¿¡æ¯ |
| | | startEmpowerBatch () { |
| | | if (this.tableData.selectedRows.length === 0) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout> |
| | | <!-- æç´¢è¡¨å --> |
| | | <!-- <el-form ref="searchForm" slot="search-form" label-width="100px" inline> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="filters.status" placeholder="è¯·éæ©"> |
| | | <el-option label="å¯ç¨" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> --> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <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="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 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.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 }, |
| | | 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="parentId"> |
| | | <el-select 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> |
| | | </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: '', |
| | | type: 1 |
| | | }, |
| | | // éªè¯è§å |
| | | 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({}).then(res => { |
| | | this.dataList = res || [] |
| | | |
| | | }) |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.$emit('close') |
| | | }, |
| | | getDetail(id) { |
| | | getInfoById(id).then(res => { |
| | | this.form = res |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-form-item title="车çå·" prop="carCode"> |
| | | <el-input v-model="searchForm.carCode" placeholder="车çå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item title="车主å§å/ææºå·" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" placeholder="åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | <el-form-item title="车主信æ¯" prop="memberName"> |
| | | <el-input v-model="searchForm.memberName" placeholder="车主信æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item title="车主ç»ç»" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="车主ç»ç»åç§°" @keypress.enter.native="search"></el-input> |