From 66b84de58e3efae14c1e258ee716e02ad9557497 Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期四, 09 十月 2025 08:48:50 +0800 Subject: [PATCH] 最新版本541200007 --- admin/src/components/business/OperaCarsWindow.vue | 152 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 107 insertions(+), 45 deletions(-) diff --git a/admin/src/components/business/OperaCarsWindow.vue b/admin/src/components/business/OperaCarsWindow.vue index f8bfc58..d61c16e 100644 --- a/admin/src/components/business/OperaCarsWindow.vue +++ b/admin/src/components/business/OperaCarsWindow.vue @@ -1,28 +1,52 @@ <template> - <GlobalWindow :title="title" width="500px" @close="close" :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-form-item> - <el-form-item label="杞﹁締绫诲瀷" prop="type"> +<!-- <el-form-item label="澶囨敞" prop="type"> <el-radio-group v-model="form.type"> <el-radio :label="0">瀹夋嘲鍏姟杞�</el-radio> <el-radio :label="1">瀹夋嘲鐗╂祦杞�</el-radio> <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="{ + </el-form-item>--> + <el-form-item label="閫夋嫨鍒嗙被锛�" prop="cateId"> +<!-- <el-cascader v-model="form.cateId" @change="changeSel" :options="cateList" :props="{ label: 'name', value: 'id', children: 'childCategoryList', - }"></el-cascader> + checkStrictly: true + }"></el-cascader>--> + <treeselect + @select="cateChange" + v-model="form.cateId" + placeholder="璇烽�夋嫨" + :options="cateList" + :normalizer="normalizeOptions1" + :default-expand-level="1" + noChildrenText="娌℃湁瀛愰�夐」" + noOptionsText="娌℃湁鍙�夐」" + noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" /> </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> + <treeselect + @input="changeSel" + v-model="form.groupId" + placeholder="璇烽�夋嫨" + :options="companyTree" + :normalizer="normalizeOptions" + :default-expand-level="1" + noChildrenText="娌℃湁瀛愰�夐」" + noOptionsText="娌℃湁鍙�夐」" + noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" /> +<!-- <el-select v-model="form.groupId" @change="changeSel" clearable filterable placeholder="璇烽�夋嫨"> + <template v-for="item in companyList"> + <el-option v-if="item.countNum && item.countNum>0" :key="item.id" :label="item.name" :value="item.id"> + </el-option> + </template> + </el-select>--> </el-form-item> <el-form-item label="閫夋嫨杞︿富锛�" prop="memberId"> <el-select v-model="form.memberId" clearable filterable placeholder="璇烽�夋嫨"> @@ -40,13 +64,13 @@ 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 { companyGetList, fetchList as companyTree } from '@/api/business/company' import { Message } from 'element-ui' export default { name: 'OperaInternalCompanyWindow', extends: BaseOpera, components: { GlobalWindow }, - data() { + data () { return { // 琛ㄥ崟鏁版嵁 memberList: [], @@ -54,34 +78,36 @@ id: null, code: null, memberId: null, - type: 0, + // type: 0, groupId: null, - cateId: [], + cateId: null }, + selectCate: null, cateList: [], companyList: [], + companyTree: [], // 楠岃瘉瑙勫垯 rules: { code: [{ required: true, message: '璇疯緭鍏ヨ溅鐗屽彿' }], - groupId: [{ required: true, message: '璇烽�夋嫨缁勭粐' }], - type: [ - { required: true, message: '璇烽�夋嫨杞﹁締绫诲瀷' } - ] + groupId: [{ required: true, message: '璇烽�夋嫨缁勭粐' }] + /* type: [ + { required: true, message: '璇烽�夋嫨澶囨敞' } + ] */ } } }, - created() { + created () { this.config({ api: '/business/cars', 'field.id': 'id' }) }, methods: { - open(title, target) { + open (title, target) { this.title = title this.visible = true this.getCate() - this.getCompany() + this.getfindCompanyTreePage() // 鏂板缓缁勭粐 if (target == null) { this.$nextTick(() => { @@ -89,7 +115,6 @@ this.form[this.configData['field.id']] = null this.form.type = 0 }) - return } // 缂栬緫 // this.$nextTick(() => { @@ -98,26 +123,53 @@ // } // }) }, - changeSel() { + cateChange(node){ + this.selectCate = node + }, + // 瑙勮寖鍖栭�夐」鏁版嵁鐨勬柟娉� + normalizeOptions1 (node) { + if (!node.childCategoryList || !node.childCategoryList.length) { + // 鍘绘帀children=[]鐨刢hildren灞炴�� + delete node.childCategoryList + } + var node1 = { + id: node.id, + label: node.name, + parentId: node.parentId, + children: node.childCategoryList, + } + return node1 + }, + normalizeOptions (node) { + if (!node.childList || !node.childList.length) { + // 鍘绘帀children=[]鐨刢hildren灞炴�� + delete node.childList + } + return { + id: node.id, + label: node.name, + children: node.childList + } + }, + changeSel () { const { form } = this if (form.groupId) { this.loadMember() } + this.form.memberId = '' }, - confirm() { + confirm () { console.log('form', this.form.cateId) const { form } = this - if(form.cateId && form.cateId.length == 2){ - - }else{ + if(this.selectCate && this.selectCate.childCategoryList && this.selectCate.childCategoryList.length) { return Message.error('璇烽�夋嫨浜岀骇鍒嗙被') } - this.$refs['form'].validate((valid) => { + this.$refs.form.validate((valid) => { if (valid) { - let fn = form.id ? updateById : create + const fn = form.id ? updateById : create fn({ - ...form, - cateId: form.cateId[1] + ...form + // cateId: form.cateId[1] }).then(res => { Message.success('淇濆瓨鎴愬姛') this.visible = false @@ -125,40 +177,50 @@ }) } }) - }, - close() { + close () { this.visible = false this.$emit('close') }, - handleChange(val) { + handleChange (val) { }, - getCate() { + getCate () { fetchList({ - model: {}, + model: {type:1}, capacity: 1000, - page: 1, + page: 1 }).then(res => { - this.cateList = res.records || [] + if (res && res.records && res.records.length > 0) { + res.records[0].fsStatus = 1 + this.cateList = res.records || [] + } }) }, - getCompany() { + getCompany () { companyGetList({ - model: {}, - capacity: 1000, - page: 1, + model: { }, // 鏈夊憳宸ョ殑鏁版嵁 + capacity: 10000, + page: 1 }).then(res => { this.companyList = res.records || [] - }) }, - loadMember() { + getfindCompanyTreePage () { + companyTree() + .then(res => { + if (res && res.length > 0) { + res[0].fsStatus = 1 + this.companyTree = res + } + }) + }, + loadMember () { const { form } = this allList({ type: 2, - companyId: form.groupId, + companyId: form.groupId }) .then(res => { -- Gitblit v1.9.3