From 05cd6a216ba17cfe357bbe52e4a9e53494d5717c Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期三, 09 十月 2024 10:23:03 +0800 Subject: [PATCH] ll --- admin/src/components/business/OperaCarsWindow.vue | 158 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 114 insertions(+), 44 deletions(-) diff --git a/admin/src/components/business/OperaCarsWindow.vue b/admin/src/components/business/OperaCarsWindow.vue index 966e8f2..f8bfc58 100644 --- a/admin/src/components/business/OperaCarsWindow.vue +++ b/admin/src/components/business/OperaCarsWindow.vue @@ -1,45 +1,52 @@ <template> - <GlobalWindow - :title="title" - width="500px" - :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-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="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> - </el-select> - </el-form-item> - </el-form> - </GlobalWindow> + <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-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="{ + 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> + </el-select> + </el-form-item> + </el-form> + </GlobalWindow> </template> <script> 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, components: { GlobalWindow }, - data () { + data() { return { // 琛ㄥ崟鏁版嵁 memberList: [], @@ -47,49 +54,112 @@ 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: '璇烽�夋嫨杞﹁締绫诲瀷' } ] } } }, - created () { + created() { this.config({ api: '/business/cars', 'field.id': 'id' }) }, methods: { - open (title, target) { + open(title, target) { this.title = title this.visible = true - this.loadMember() + this.getCate() + this.getCompany() // 鏂板缓缁勭粐 if (target == null) { this.$nextTick(() => { this.$refs.form.resetFields() this.form[this.configData['field.id']] = null - this.form.type=0 + this.form.type = 0 }) 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') + }) } }) + }, - loadMember () { + 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 -- Gitblit v1.9.3