From edc00525eeb2dd3a92b321e116ad97620adafee4 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期四, 13 二月 2025 15:18:15 +0800 Subject: [PATCH] 客户管理页面联调 --- src/views/system/customer/index.vue | 388 ++++++++++++++++++------------------------------------- 1 files changed, 128 insertions(+), 260 deletions(-) diff --git a/src/views/system/customer/index.vue b/src/views/system/customer/index.vue index 9bef5d6..bdd5b8f 100644 --- a/src/views/system/customer/index.vue +++ b/src/views/system/customer/index.vue @@ -3,309 +3,177 @@ <div class="search"> <div> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> - <el-form-item label="鐘舵��" prop="state"> + <el-form-item label="瀹㈡埛鍚嶇О" prop="company"> <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.company" - @keyup.enter.native="refreshTable()"></el-input> + @keyup.enter.native="getList"></el-input> </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button> + <el-button type="primary" icon="el-icon-search" size="mini" @click="getList">鏌� 璇�</el-button> <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button> </el-form-item> </el-form> </div> <div> - <el-button size="small" type="primary" @click="addDia = true" v-if="addPower" icon="el-icon-plus">鏂板</el-button> + <el-button size="small" type="primary" @click="openFormDia('add')" icon="el-icon-plus">鏂板</el-button> </div> </div> -<!-- <div class="table">--> -<!-- <ValueTable ref="ValueTable" :url="$api.user.selectCustomPageList" :delUrl="$api.user.delCustomById"--> -<!-- :componentData="componentData" :key="upIndex" :upUrl="$api.user.upCustom"/>--> -<!-- </div>--> - <el-dialog title="鏂板瀹㈡埛" :visible.sync="addDia" width="450px"> - <div style="margin-bottom: 15px;"> - <el-row style="line-height: 50px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* - </span>瀹㈡埛鍚嶇О锛�</el-col> - <el-col :span="15"> - <el-input v-model="user.company" size="small" clearable></el-input> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* - </span>瀹㈡埛鍗曚綅EN锛�</el-col> - <el-col :span="15"> - <el-input v-model="user.companyEn" size="small" clearable></el-input> - </el-col> - </el-row> - <el-row style="margin-top: 15px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* - </span>鍗曚綅鍦板潃锛�</el-col> - <el-col :span="15"> - <el-input type="textarea" v-model="user.address" size="small" clearable - :autosize="{minRows: 2, maxRows: 4}"></el-input> - </el-col> - </el-row> - <el-row style="margin-top: 15px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* - </span>瀹㈡埛鍦板潃EN锛�</el-col> - <el-col :span="15"> - <el-input type="textarea" v-model="user.addressEn" size="small" clearable - :autosize="{minRows: 2, maxRows: 4}"></el-input> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* - </span>鍔犳�ラ搴︼細</el-col> - <el-col :span="15"> - <el-input v-model="user.num" size="small" clearable></el-input> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;">鍗曚綅鐢佃瘽锛�</el-col> - <el-col :span="15"> - <el-input v-model="user.phone" size="small" clearable></el-input> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;">宸ュ巶鍩燂細</el-col> - <el-col :span="15"> - <el-input v-model="user.code" size="small" clearable></el-input> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">* - </span>瀹㈡埛缂栧彿锛�</el-col> - <el-col :span="15"> - <el-input v-model="user.code2" size="small" clearable></el-input> - </el-col> - </el-row> - </div> + <div> + <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"></lims-table> + </div> + <el-dialog :title="formTitle" :visible.sync="addDia" width="450px"> + <el-form ref="userForm" :model="user" :rules="userRules" label-position="right" label-width="100px"> + <el-form-item label="瀹㈡埛鍚嶇О" prop="company"> + <el-input v-model="user.company" size="small" clearable></el-input> + </el-form-item> + <el-form-item label="瀹㈡埛鍗曚綅EN" prop="companyEn"> + <el-input v-model="user.companyEn" size="small" clearable></el-input> + </el-form-item> + <el-form-item label="鍗曚綅鍦板潃" prop="address"> + <el-input type="textarea" v-model="user.address" size="small" clearable + :autosize="{minRows: 2, maxRows: 4}"></el-input> + </el-form-item> + <el-form-item label="鍗曚綅鍦板潃EN" prop="addressEn"> + <el-input type="textarea" v-model="user.addressEn" size="small" clearable + :autosize="{minRows: 2, maxRows: 4}"></el-input> + </el-form-item> + <el-form-item label="鍗曚綅鐢佃瘽" prop="phone"> + <el-input v-model="user.phone" size="small" clearable></el-input> + </el-form-item> + <el-form-item label="鍔犳�ラ搴�" prop="num"> + <el-input v-model="user.num" size="small" clearable></el-input> + </el-form-item> + <el-form-item label="瀹㈡埛缂栧彿" prop="code2"> + <el-input v-model="user.code2" size="small" clearable></el-input> + </el-form-item> + <el-form-item label="宸ュ巶鍩�" prop="code"> + <el-input v-model="user.code" size="small" clearable></el-input> + </el-form-item> + </el-form> <span slot="footer" class="dialog-footer"> - <el-button @click="addDia = false">鍙� 娑�</el-button> + <el-button @click="reset">鍙� 娑�</el-button> <el-button type="primary" @click="customAdd" :loading="loading">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog title="閫夋嫨鐢ㄦ埛" :visible.sync="selectUserDia" width="70%"> - <div class="search" style="height: 35px; margin-bottom: 9px;"> - <div class="search_thing"> - <div class="search_label">鐢ㄦ埛鍚嶏細</div> - <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="componentData2.entity.name" @keyup.enter.native="$refs.ValueTable2.selectList()"></el-input></div> - </div> - </div> -<!-- <div class="body" style="height: 60vh;" v-if="selectUserDia">--> -<!-- <ValueTable ref="ValueTable2" :url="$api.user.selectUserList" :componentData="componentData2" />--> -<!-- </div>--> - <span slot="footer" class="dialog-footer"> - <el-button @click="selectUserDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="selectUser">纭� 瀹�</el-button> </span> </el-dialog> </div> </template> <script> -import ValueTable from '@/components/Table/value-table.vue' +import limsTable from '@/components/Table/lims-table.vue' +import {addCustom, selectCustomPageList, upCustom} from "@/api/system/customer"; export default { components: { - ValueTable + limsTable }, data() { return { queryParams: { company: '' }, - componentData: { - entity: { - company: null, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: false, - select: false, - do: [{ - font: '濮旀墭璁板綍', - type: 'text', - method: 'entrust' - }, { - font: '鍗忚璁板綍', - type: 'text', - method: 'protocol' - },{ - id: 'update', - font: '缂栬緫', - type: 'text', - method: 'doDiy', - field:[] - },{ - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - }], - tagField: { - state: { - select: [{ - value: 1, - type: 'success', - label: '鍚敤' - }, { - value: 0, - type: 'danger', - label: '鍋滅敤' - }] - } - }, - selectField: { - state: { - select: [{ - value: 1, - type: 'success', - label: '鍚敤' - }, { - value: 0, - type: 'danger', - label: '鍋滅敤' - }] - } - }, - requiredAdd: [], - requiredUp: ['company','address','code2','companyEn','addressEn','num'] + tableData: [], + column: [ + {label: '瀹㈡埛鍚嶇О', prop: 'company'}, + {label: '瀹㈡埛鍗曚綅EN', prop: 'companyEn'}, + {label: '鍗曚綅鍦板潃', prop: 'address'}, + {label: '鍗曚綅鍦板潃EN', prop: 'addressEn'}, + {label: '鍗曚綅鐢佃瘽', prop: 'phone'}, + {label: '鍔犳�ラ搴�', prop: 'num'}, + {label: '瀹㈡埛缂栧彿', prop: 'code2'}, + {label: '宸ュ巶鍩�', prop: 'code'}, + { + dataType: 'action', + fixed: 'right', + label: '鎿嶄綔', + operation: [ + { + name: '缂栬緫', + type: 'text', + clickFun: (row) => { + this.openFormDia('edit', row); + }, + }, + ] + } + ], + page: { + total:0, + size:10, + current:0 }, - entityCopy: {}, - upIndex: 0, + tableLoading: false, + // 缂栬緫瀹㈡埛寮规 + operationType: '', + formTitle: '', addDia: false, addPower: true, user: { name: null }, - selectUserDia: false, + userRules: { + company: [{ required: true, message: '璇疯緭鍏ュ鎴峰悕绉�', trigger: 'blur' }], + companyEn: [{ required: true, message: '璇疯緭鍏ュ鎴峰悕绉癊N', trigger: 'blur' }], + address: [{ required: true, message: '璇疯緭鍏ュ崟浣嶅湴鍧�', trigger: 'blur' }], + addressEn: [{ required: true, message: '璇疯緭鍗曚綅鍦板潃EN', trigger: 'blur' }], + num: [{ required: true, message: '璇疯緭鍏ュ姞鎬ラ搴�', trigger: 'blur' }], + code2: [{ required: true, message: '璇疯緭鍏ュ鎴风紪鍙�', trigger: 'blur' }], + }, loading: false, - componentData2: { - entity: { - isCustom: 0, - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: true, - select: false, - do: [], - tagField: { - state: { - select: [{ - value: 1, - type: 'success', - label: '鍚敤' - }, { - value: 0, - type: 'danger', - label: '鍋滅敤' - }] - } - }, - selectField: {}, - needSort: ['company'], - } + // } }, mounted() { - this.entityCopy = this.HaveJson(this.componentData.entity) - this.getPower() + this.getList() }, methods: { - refreshTable() { - this.$refs['ValueTable'].selectList() - }, - refresh() { - this.componentData.entity = this.HaveJson(this.entityCopy) - this.upIndex++ - }, - customAdd() { - if (this.user.company == '' || this.user.company == null) { - this.$message.error('璇峰~鍐欏鎴峰崟浣�') - return - } - if (this.user.address == '' || this.user.address == null) { - this.$message.error('璇峰~鍐欏崟浣嶅湴鍧�') - return - } - if (this.user.companyEn == '' || this.user.companyEn == null) { - this.$message.error('璇峰~鍐欒嫳鏂囧鎴峰崟浣�') - return - } - if (this.user.addressEn == '' || this.user.addressEn == null) { - this.$message.error('璇峰~鍐欒嫳鏂囧崟浣嶅湴鍧�') - return - } - if (this.user.code2 == '' || this.user.code2 == null) { - this.$message.error('璇峰~鍐欏鎴风紪鍙�') - return - } - if (this.user.code2 == '' || this.user.code2 == null) { - this.$message.error('璇峰~鍐欏姞鎬ラ搴�') - return - } - this.loading = true - this.$axios.post(this.$api.user.addCustom, this.user, { - headers: { - 'Content-Type': 'application/json' + // 鏌ヨ瀹㈡埛鍒楄〃 + getList() { + this.tableLoading = true + selectCustomPageList({...this.queryParams, ...this.page}).then(res => { + this.tableLoading = false + if (res.code === 200) { + this.tableData = res.data + this.page.total = res.total } - }).then(res => { - if (res.code == 201) return - this.$message.success('娣诲姞鎴愬姛') - this.refreshTable() - this.loading = false - this.addDia = false + }).catch(err => { + this.tableLoading = false }) }, - // 鏉冮檺鍒嗛厤 - getPower() { - let power = JSON.parse(sessionStorage.getItem('power')) - let up = false - let del = false - let add = false - for (var i = 0; i < power.length; i++) { - if (power[i].menuMethod == 'delCustomById') { - del = true - } - if (power[i].menuMethod == 'addCustom') { - add = true - } - if (power[i].menuMethod == 'upCustom') { - up = true - } - } - if (!del) { - this.componentData.do.splice(3, 1) - } - if (!up) { - this.componentData.do.splice(2, 1) - } - this.addPower = add + // 閲嶇疆table + refresh() { + this.queryParams.company = '' + this.getList() }, - entrust(data) { - + openFormDia (type, row) { + this.addDia = true + this.formTitle = type === 'add' ? '鏂板瀹㈡埛' : '缂栬緫瀹㈡埛' + this.operationType = type }, - protocol(data) { - + customAdd() { + this.$refs['userForm'].validate((valid) => { + if (valid) { + this.loading = true + if (this.operationType === 'add') { + addCustom(this.user).then(res => { + if (res.code === 201) return + this.$message.success('鏂板鎴愬姛') + this.getList() + this.loading = false + this.reset() + }) + } else { + upCustom(this.user).then(res => { + if (res.code === 201) return + this.$message.success('淇敼鎴愬姛') + this.getList() + this.loading = false + this.reset() + }) + } + } + }) }, - selectUser() { - let selects = this.$refs.ValueTable2.multipleSelection - if (selects.length == 0) { - this.$message.error('鏈�夋嫨鏁版嵁') - return - } - delete selects['orderBy'] - delete selects['updateUser'] - delete selects['updateTime'] - this.user = selects - this.selectUserDia = false + reset () { + this.addDia = false + this.resetForm("userForm"); } } } @@ -313,7 +181,7 @@ <style scoped> .search { - height: 80px; + height: 46px; display: flex; justify-content: space-between; } -- Gitblit v1.9.3