From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 十月 2024 15:59:38 +0800 Subject: [PATCH] 代码初始化 --- admin/src/components/business/OperaCarsWindow.vue | 205 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 154 insertions(+), 51 deletions(-) diff --git a/admin/src/components/business/OperaCarsWindow.vue b/admin/src/components/business/OperaCarsWindow.vue index db06626..c9fab94 100644 --- a/admin/src/components/business/OperaCarsWindow.vue +++ b/admin/src/components/business/OperaCarsWindow.vue @@ -1,75 +1,178 @@ <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="code"> - <el-radio-group v-model="form.code"> - <el-radio label="鍐呴儴鍛樺伐"></el-radio> - <el-radio label="鍔冲姟浜哄憳"></el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="閫夋嫨鐢ㄦ埛" prop="code"> - <el-select v-model="form.code" filterable placeholder="璇烽�夋嫨"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鎺堟潈鏈夋晥鏈�" prop="code"> - <el-date-picker - v-model="form.code" - type="daterange" - range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡"> - </el-date-picker> - </el-form-item> - <el-form-item label="鎺堟潈鍋滆溅鍦�" prop="code"> - <el-radio-group v-model="form.code"> - <el-radio label="鍏ㄩ儴鍋滆溅鍦�"></el-radio> - <el-radio label="閮ㄥ垎鍋滆溅鍦�"></el-radio> - </el-radio-group> - </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', + checkStrictly: true + }"></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: 'OperaCarsWindow', + name: 'OperaInternalCompanyWindow', extends: BaseOpera, components: { GlobalWindow }, - data () { + data() { return { // 琛ㄥ崟鏁版嵁 + memberList: [], form: { id: null, - code: '' + code: null, + memberId: null, + type: 0, + groupId: null, + cateId: [], }, + cateList: [], + companyList: [], // 楠岃瘉瑙勫垯 rules: { - }, - options: [] + code: [{ required: true, message: '璇疯緭鍏ヨ溅鐗屽彿' }], + groupId: [{ required: true, message: '璇烽�夋嫨缁勭粐' }], + type: [ + { required: true, message: '璇烽�夋嫨涓氬姟绫诲瀷' } + ] + } } }, - created () { + created() { this.config({ - api: '/business/parkBook', + api: '/business/cars', 'field.id': 'id' }) + }, + methods: { + open(title, target) { + this.title = title + this.visible = true + this.getCate() + this.getCompany() + // 鏂板缓缁勭粐 + if (target == null) { + this.$nextTick(() => { + this.$refs.form.resetFields() + this.form[this.configData['field.id']] = null + this.form.type = 0 + }) + return + } + // 缂栬緫 + // 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, + companyId: form.groupId, + + }) + .then(res => { + this.memberList = res + }) + .catch(e => { + // this.$tip.apiFailed(e) + }) + .finally(() => { + this.isWorking = false + }) + } } } </script> -- Gitblit v1.9.3