From 9cb389b74302ce6b0a2333328922e7c462234a56 Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期五, 01 十二月 2023 18:31:27 +0800 Subject: [PATCH] feat: 基础信息 新增、编辑增加防重提交 列表也优化 --- admin-web/src/views/foundation/material/edit.vue | 141 +++++++++++++++++++++++++++++----------------- 1 files changed, 89 insertions(+), 52 deletions(-) diff --git a/admin-web/src/views/foundation/material/edit.vue b/admin-web/src/views/foundation/material/edit.vue index 404a19d..37b9590 100644 --- a/admin-web/src/views/foundation/material/edit.vue +++ b/admin-web/src/views/foundation/material/edit.vue @@ -1,27 +1,45 @@ <template> - <win-md :title="setting.title" @close="close" :width="'800px'"> + <win-md :title="setting.title" @close="close" :width="'800px'" :loading="loading"> <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="鐗╁搧缂栧彿"> - <el-input v-model="formData.goodsCode" disabled clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> + <!-- <el-form-item label="鐗╁搧缂栧彿"> + <el-input v-model="formData.goodsCode" disabled clearable maxlength="20" show-word-limit style="width: 100%"/> + </el-form-item>--> <el-form-item label="鐗╁搧鍚嶇О" prop="goodsName"> - <el-input v-model="formData.goodsName" clearable maxlength="20" show-word-limit style="width: 100%"/> + <el-input v-model="formData.goodsName" placeholder="璇疯緭鍏ョ墿鍝佸悕绉�" clearable maxlength="20" show-word-limit + style="width: 100%"/> </el-form-item> - <el-form-item label="鍒嗙被" prop="categoryId"> - <el-select v-model="formData.categoryId" clearable placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName" :value="item.id"></el-option> - </el-select> + <el-form-item label="鐗╁搧鍒嗙被" prop="categoryId"> + <!-- <el-select v-model="formData.categoryId" clearable placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in categoryList" :key="item.id" :label="item.categoryName" + :value="item.id"></el-option> + </el-select>--> + <el-cascader + clearable + filterable + placeholder="璇烽�夋嫨鐗╁搧鍒嗙被" + v-model="formData.categoryId" + :options="categoryList" + :props="{emitPath: false,value: 'id'}" + style="width: 100%"/> </el-form-item> - <el-form-item style="margin-left: -100px;" v-for="(m, i) in formData.models"> - <el-form-item label="瑙勬牸鍨嬪彿" prop="modelName" style="float: left;"> - <el-input v-model="m.modelName" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="鍗曚綅" prop="unit" style="float: left;"> - <el-input v-model="m.unit" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <my-button name="鏂板鍨嬪彿" type="" @click="addCode"/> - <my-button name="鍒犻櫎" type="" @click="delCode(i)"/> - </el-form-item> + <el-row :gutter="20" v-for="(m, i) in formData.models"> + <el-col :span="9"> + <el-form-item label="瑙勬牸鍨嬪彿" :prop="`models.${i}.modelName`" :rules="rules.modelName"> + <el-input v-model="m.modelName" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙峰悕绉�" clearable maxlength="20" show-word-limit + style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="9"> + <el-form-item label="鍗曚綅" :prop="`models.${i}.unit`" :rules="rules.unit"> + <el-input v-model="m.unit" placeholder="璇疯緭鍏ュ崟浣�" clearable maxlength="20" show-word-limit + style="width: 100%"/> + </el-form-item> + </el-col> + <el-col :span="6"> + <my-button :key="'d'+i" v-if="formData.models.length>1" name="鍒犻櫎" type="danger" @click="delCode(i)"/> + <my-button :key="'a'+i" v-if="i===formData.models.length-1" name="鏂板鍨嬪彿" type="" @click="addCode"/> + </el-col> + </el-row> <el-form-item label="鐘舵��" prop="states"> <el-radio-group v-model="formData.states"> <el-radio :label="1" border>鍚敤</el-radio> @@ -40,6 +58,7 @@ import winMd from '@/components/win/win-md' import myButton from '@/components/myButton/myButton' import * as finsystenant from '@/api/baseSetting/finsystenant' +import {getTree} from '@/api/foudation/classification'; import {mapGetters} from 'vuex' export default { @@ -53,66 +72,76 @@ }, data() { return { - categoryList:[], + loading: true, + categoryList: [], checkAll: false, checkedList: [], formData: { - radio1: '', - code: '', - name: '', + goodsName: '', states: 1, summary: '', categoryId: null, - agencyId:'', - agencyName:'', - models:[ + agencyId: '', + agencyName: '', + models: [ { - modelName:'', - unit:'' + modelName: '', + unit: '' } ] }, rules: { - name: [ + goodsName: [ {required: true, message: '璇疯緭鍏ョ墿鍝佸悕绉�', trigger: 'blur'} + ], + categoryId: [ + {required: true, message: '璇烽�夋嫨鐗╁搧鍒嗙被', trigger: 'blur'} + ], + modelName: [ + {required: true, message: '璇疯緭鍏ヨ鏍煎悕绉�', trigger: 'blur'} + ], + unit: [ + {required: true, message: '璇疯緭鍏ュ崟浣�', trigger: 'blur'} ] } } }, - computed:{ + computed: { ...mapGetters(['userInfo']) }, - created() { - this.tree_List() - if(this.setting.info){ - this.formData = Object.assign({},JSON.parse(this.setting.info)) + async created() { + if (this.setting.id) { + await finsystenant.editmaterial(this.setting.id).then(res => { + this.formData = res + if (!this.formData.agencyId) { + this.formData.agencyId = this.userInfo.tenantId + this.formData.agencyName = this.userInfo.tenantName + } + }) } - if(!this.formData.agencyId) { - this.formData.agencyId = this.userInfo.tenantId - this.formData.agencyName = this.userInfo.tenantName - } + await this.tree_List() + this.loading = false }, methods: { - tree_List (){ - finsystenant.treeList().then(res => { + async tree_List() { + await getTree().then(res => { if (res) { - console.log(res,'res'); this.categoryList = res } }) }, - addCode(){ + addCode() { this.formData.models.push( - { - modelName:'', - unit:'' - } + { + modelName: '', + unit: '' + } ) }, - delCode(index){ + delCode(index) { this.formData.models.splice(index, 1) }, - getEditInfo(id){ + getEditInfo(id) { }, close() { @@ -122,9 +151,12 @@ this.$refs.ruleForm.validate((valid) => { if (valid) { const params = Object.assign({}, this.formData) - if(this.setting.id){ + if (this.loading) return + this.loading = true + if (this.setting.id) { // 缂栬緫鎺ュ彛 finsystenant.editcode(params).then(res => { + this.loading = false if (res) { this.$message.success('淇濆瓨鎴愬姛锛�') this.close() @@ -132,10 +164,13 @@ } else { this.$message.error('淇濆瓨澶辫触') } - }) - }else{ + }).catch(() => { + this.loading = false + }); + } else { params.orgId = this.setting.orgId finsystenant.addcode(params).then(res => { + this.loading = false if (res) { this.$message.success('淇濆瓨鎴愬姛锛�') this.close() @@ -143,7 +178,9 @@ } else { this.$message.error('淇濆瓨澶辫触') } - }) + }).catch(() => { + this.loading = false + }); } } else { this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') -- Gitblit v1.9.1