From 459783fd4af8e8c0566b57690e7f0579373d2db8 Mon Sep 17 00:00:00 2001 From: tian <3072314689@qq.com> Date: 星期五, 26 九月 2025 11:42:46 +0800 Subject: [PATCH] ‘列表查询 --- src/views/archiveManager/index.vue | 369 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 327 insertions(+), 42 deletions(-) diff --git a/src/views/archiveManager/index.vue b/src/views/archiveManager/index.vue index 940abd3..51f93be 100644 --- a/src/views/archiveManager/index.vue +++ b/src/views/archiveManager/index.vue @@ -126,6 +126,21 @@ @keyup.enter.native="handleQuery" /> </el-form-item> + <!-- 娣诲姞椤圭洰鍚嶇О鎼滅储妗� --> + <el-form-item label="椤圭洰鍚嶇О" prop="everyProjectName"> + <el-select + v-model="queryParams.everyProjectName" + placeholder="璇烽�夋嫨椤圭洰鍚嶇О" + clearable + > + <el-option + v-for="item in projectOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> <el-input v-model="queryParams.projectNumber" @@ -215,6 +230,49 @@ v-hasPermi="['system:records:export']" >瀵煎嚭</el-button> </el-col> + + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleBatchSubmit" + v-hasPermi="['system:records:export']" + >鎵归噺鎻愪氦</el-button> + </el-col> + + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExportTemplate" + v-hasPermi="['system:materials:edit']" + >瀵煎叆妯℃澘涓嬭浇</el-button> + </el-col> + + <el-col :span="1.5"> + + <el-upload + action="" + + class="upload-demo" + :show-file-list="false" + :http-request="handleImportData" + accept=".xlsx,.xls" + + > + <el-button size="mini" type="primary" + plain + icon="el-icon-top">瀵煎叆</el-button> + + </el-upload> + </el-col> + + + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> @@ -223,7 +281,9 @@ <!-- <el-table-column label="${comment}" align="center" prop="id" /> --> <el-table-column label="妗f鍙�" align="center" prop="recordId" /> <el-table-column label="鍙戞枃鍙�" align="center" prop="inquiryNumber" /> - <el-table-column label="妗堝嵎棰樺悕" align="center" prop="caseTitle" /> + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="everyProjectName" /> + + <el-table-column label="妗堝嵎棰樺悕" align="center" prop="caseTitle" show-overflow-tooltip /> <el-table-column label="鍏紑灞炴��" align="center" prop="publicAttribute" /> <el-table-column label="缂栧埗鍗曚綅" align="center" prop="preparationUnit" /> <el-table-column label="缂栧埗鏃ユ湡" align="center" prop="preparationDate" width="180"> @@ -244,6 +304,16 @@ <el-table-column label="缂╁井鍙�" align="center" prop="microfilmNumber" /> <el-table-column label="澶囨敞" align="center" prop="remarks" /> <el-table-column label="鍘嗗彶鐩稿叧鍙戞枃鍙�" align="center" prop="historicalReferenceNumber" /> + + <el-table-column label="鐘舵��" align="center" prop="recordStatus"> + <template slot-scope="scope"> + <el-button :type="scope.row.recordStatus === '鏈綍鍏�' ? 'danger' : 'success'" size="mini"> + {{ scope.row.recordStatus }} + </el-button> + </template> +</el-table-column> + + <el-table-column label="鎿嶄綔" align="center" width="190" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button @@ -257,14 +327,20 @@ >妗堝嵎璇︾粏淇℃伅</el-button> <el-button - - size="mini" type="text" icon="el-icon-edit" @click="handleCheck(scope.row)" >鏌ョ湅</el-button> + <el-button + v-if="userId!==1&&scope.row.ownData" + size="mini" + type="text" + icon="el-icon-edit" + @click="handleSubmit(scope.row)" + v-hasPermi="['system:records:edit']" + >鎻愪氦妗堝嵎</el-button> <el-button v-if="scope.row.ownData||userId===1" @@ -322,7 +398,24 @@ /> </el-select> </el-col> - <el-col :span="6"> + + + <el-col :span="6"> + <el-select + + v-model="form.recordZone" + placeholder="閫夋嫨鍦板尯" + @change="handleRecordTypeChange" + :disabled="userId!=1" > + <el-option + v-for="item in zoneTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-col> + <el-col :span="4"> <el-input v-model="form.recordYear" placeholder="杈撳叆骞翠唤" @@ -332,7 +425,7 @@ @input="generateRecordId" /> </el-col> - <el-col :span="6"> + <el-col :span="4"> <el-input v-model="form.recordSeq" placeholder="鑷姩鐢熸垚" @@ -342,7 +435,7 @@ </el-row> </el-form-item> <el-form-item label="鍙戞枃鍙�" prop="inquiryNumber"> - <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂闂彿" disabled/> + <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂鏂囧彿" disabled/> </el-form-item> <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" disabled/> @@ -411,12 +504,12 @@ <!-- 娣诲姞鎴栦慨鏀规。妗堣褰曞璇濇 --> <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> - <el-form-item label="妗f鍙�" > + <el-form-item label="妗f鍙�" prop="recordId"> <el-row :gutter="8"> <el-col :span="6"> <el-select - + v-model="form.recordType" placeholder="閫夋嫨妗f绫诲瀷" @change="handleRecordTypeChange" @@ -429,36 +522,71 @@ /> </el-select> </el-col> - <el-col :span="6"> + + + <el-col :span="6"> + <el-select + + v-model="form.recordZone" + placeholder="閫夋嫨鍦板尯" + @change="handleRecordTypeChange" + :disabled="userId!=1" > + <el-option + v-for="item in zoneTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-col> + <el-col :span="4"> <el-input v-model="form.recordYear" + @input="generateRecordId" + placeholder="杈撳叆骞翠唤" - @input="generateRecordId" :disabled="userId!=1" /> </el-col> - <el-col :span="6"> + <el-col :span="4"> <el-input v-model="form.recordSeq" - placeholder="鑷姩鐢熸垚" - disabled + :disabled="userId!=1" + @input="generateRecordId" + + placeholder="杈撳叆妗f搴忓彿" /> </el-col> </el-row> </el-form-item> <el-form-item label="鍙戞枃鍙�" prop="inquiryNumber"> - <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂闂彿" :disabled="userId!=1" + <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂鏂囧彿" :disabled="userId!=1" /> </el-form-item> - <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> - <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" :disabled="userId!=1"/> + <el-form-item label="椤圭洰鍚嶇О" prop="everyProjectName"> + <el-select + v-model="form.everyProjectName" + placeholder="璇烽�夋嫨椤圭洰鍚嶇О" + + :disabled="userId!=1" + > + <el-option + v-for="item in projectOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> </el-form-item> + + + <div v-if="vis"> <el-form-item label="妗堝嵎棰樺悕" prop="caseTitle"> - <el-input v-model="form.caseTitle" placeholder="璇疯緭鍏ユ鍗烽鍚�" /> + <el-input v-model="form.caseTitle" placeholder="鑷姩鐢熸垚" :readonly="true" /> </el-form-item> <el-form-item label="鍏紑灞炴��" prop="publicAttribute"> - + <el-select v-model="form.publicAttribute" @@ -473,7 +601,7 @@ /> </el-select> </el-form-item> - + <el-form-item label="缂栧埗鍗曚綅" prop="preparationUnit"> <el-input v-model="form.preparationUnit" placeholder="璇疯緭鍏ョ紪鍒跺崟浣�" /> </el-form-item> @@ -525,7 +653,10 @@ <el-form-item label="寤鸿鍦板潃" prop="constructionAddress"> <el-input v-model="form.constructionAddress" placeholder="璇疯緭鍏ュ缓璁惧湴鍧�" /> </el-form-item> - + <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> + <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" /> + <!-- <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" :disabled="userId!=1"/> --> + </el-form-item> <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> <el-input v-model="form.projectNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�" /> </el-form-item> @@ -555,9 +686,10 @@ </template> <script> -import { listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" +import { batchSubmitRecords,updateStatusById,listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" import { listAllCategory } from "@/api/system/category" - +import { listAllProjectName } from "@/api/system/projectName" +import { listPlaceName, listAllPlaceName } from "@/api/system/placeName" export default { name: "Records", data() { @@ -568,10 +700,14 @@ { value: '鏅��', label: '鏅��' } ], maxId: 0, - // 妗f绫诲瀷閫夐」 - recordTypeOptions: [], - // 淇濈鏈熼檺閫夐」 - retentionPeriodOptions: [ + // 椤圭洰鍚嶇О閫夐」 + projectOptions: [], + // 妗f绫诲瀷閫夐」 + recordTypeOptions: [], + //鍦板尯绫诲瀷 + zoneTypeOptions: [], + // 淇濈鏈熼檺閫夐」 + retentionPeriodOptions: [ { value: "10骞�", label: "10骞�" }, { value: "30骞�", label: "30骞�" }, { value: "姘镐箙", label: "姘镐箙" } @@ -609,6 +745,7 @@ pageSize: 10, recordId: null, inquiryNumber: null, + everyProjectName: null, caseTitle: null, publicAttribute: null, preparationUnit: null, @@ -637,23 +774,53 @@ { required: true, message: "妗f鍙蜂笉鑳戒负绌�", trigger: "blur" } ], inquiryNumber: [ - { required: true, message: "鍙戦棶鍙蜂笉鑳戒负绌�", trigger: "blur" } + { required: true, message: "鍙戞枃鍙蜂笉鑳戒负绌�", trigger: "blur" } + ], + everyProjectName: [ + { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: ['change', 'blur']} + ], + caseTitle: [ + { required: true, message: "妗堝嵎棰樺悕涓嶈兘涓虹┖", trigger: "blur" } + ], + constructionUnit: [ + { required: true, message: "寤鸿鍗曚綅涓嶈兘涓虹┖", trigger: "blur" } ], projectName: [ - { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } - ], + { required: true, message: "寤鸿椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ] } } }, created() { - this.getList() + this.userId = this.$store.state.user.id; // 鑾峰彇鐢ㄦ埛瑙掕壊 - this.getId() + // this.getId() this.getRecordTypes() - - + this.getZoneOptions() + this.fetchProjectOptions() +this.getList() + }, + watch: { + 'form.constructionUnit': { + handler() { + this.generateCaseTitle(); + }, + immediate: true + }, + 'form.constructionAddress': { + handler() { + this.generateCaseTitle(); + }, + immediate: true + }, + 'form.projectName': { + handler() { + this.generateCaseTitle(); + }, + immediate: true + } }, methods: { getId() @@ -662,12 +829,55 @@ getMaxId().then(response=>{ // alert(213) console.log(response) - _this.maxId = String(response.data).padStart(5, '0') + _this.maxId = String(response.data).padStart(4, '0') _this.$set(_this.form, 'recordSeq', _this.maxId) // // alert(this.maxId) }) + }, + // 鐢熸垚妗堝嵎棰樺悕 + generateCaseTitle() { + let titleParts = []; + + if (this.form.constructionUnit) { + titleParts.push(this.form.constructionUnit); + } + + if (this.form.constructionAddress) { + titleParts.push(this.form.constructionAddress); + } + + if (this.form.projectName) { + titleParts.push(this.form.projectName); + } + + this.form.caseTitle = titleParts.join(''); + }, + async getZoneOptions() + { + try { + const response = await listAllPlaceName() + console.log("1111111333333",response.data) + this.zoneTypeOptions = response.data.data.map(item => ({ + value: item.nnumber, + label: item.name + })) + } catch (error) { + console.error('鑾峰彇椤圭洰鍚嶇О鍒楄〃澶辫触:', error) + } + }, + async fetchProjectOptions() { + try { + const response = await listAllProjectName() + console.log("1111111",response) + this.projectOptions = response.data.data.map(item => ({ + value: item.name, + label: item.name + })) + } catch (error) { + console.error('鑾峰彇椤圭洰鍚嶇О鍒楄〃澶辫触:', error) + } }, /** 鑾峰彇妗f绫诲瀷鍒楄〃 */ getRecordTypes() { @@ -690,13 +900,14 @@ /** 鐢熸垚妗f鍙� */ generateRecordId() { - if (this.form.recordType && this.form.recordYear) { + if (this.form.recordType && this.form.recordZone && this.form.recordYear && this.form.recordSeq) { + // getNextRecordId({ // type: this.form.recordType, // year: this.form.recordYear // }).then(response => { // this.form.recordSeq = response.data.seq - this.form.recordId = `${this.form.recordType}-${this.form.recordYear}-${this.form.recordSeq}` + this.form.recordId = `${this.form.recordType}-${this.form.recordZone}-${this.form.recordYear}-${this.form.recordSeq}` // }) } }, @@ -724,6 +935,7 @@ id: null, recordId: null, inquiryNumber: null, + everyProjectName: null, caseTitle: null, publicAttribute: null, preparationUnit: null, @@ -764,7 +976,7 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset() - this.form.recordSeq = this.maxId + // this.form.recordSeq = this.maxId this.open = true this.vis = false; this.title = "娣诲姞妗f璁板綍" @@ -781,6 +993,16 @@ this.$router.push("/archiveManager/infoManagerAu/archiveMaterialManager/" + recordId) }, + // + handleSubmit(row) + { + // alert(row.id) + var id = row.id + updateStatusById(id).then(response=>{ + this.$modal.msgSuccess("鎻愪氦鎴愬姛") + this.getList() + }) + }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -796,11 +1018,41 @@ if(this.recordTypeOptions.length > 0) { const recordParts = response.data.recordId.split('-') this.$set(this.form, 'recordType', recordParts[0]) - this.$set(this.form, 'recordYear', recordParts[1]) - this.$set(this.form, 'recordSeq', recordParts[2]) + this.$set(this.form, 'recordZone', recordParts[1]) + + this.$set(this.form, 'recordYear', recordParts[2]) + this.$set(this.form, 'recordSeq', recordParts[3]) } this.open = true this.title = "淇敼妗f璁板綍" + }) + }, + /** 鎵归噺鎻愪氦 */ + handleBatchSubmit() { + // alert(this.ids) + if (this.ids.length === 0) { + this.$modal.msgWarning('璇烽�夋嫨瑕佹彁浜ょ殑妗f璁板綍') + return + } + const myValidIds = this.recordsList + .filter(item => item.ownData === true) + .map(item => item.id); + // 妫�鏌ラ�変腑鐨処D鏄惁鍏ㄩ儴灞炰簬鑷繁 + const invalidIds = this.ids.filter(id => !myValidIds.includes(id)); + + if (invalidIds.length > 0) { + this.$message.error(`鍖呭惈鏃犳潈鎿嶄綔鐨処D: ${invalidIds.join(',')}`); + return false; + } + //濡傛灉id鍏ㄩ儴鏈夋晥鎵嶇户缁彁浜� + batchSubmitRecords( this.ids ).then(response => { + if (response.code === 0) { + this.$modal.msgSuccess('鎵归噺鎻愪氦鎴愬姛') + this.getList() + this.ids = [] + } else { + this.$modal.msgError(response.msg || '鎵归噺鎻愪氦澶辫触') + } }) }, /** 淇敼鎸夐挳鎿嶄綔 */ @@ -815,8 +1067,10 @@ if(this.recordTypeOptions.length > 0) { const recordParts = response.data.recordId.split('-') this.$set(this.form, 'recordType', recordParts[0]) - this.$set(this.form, 'recordYear', recordParts[1]) - this.$set(this.form, 'recordSeq', recordParts[2]) + this.$set(this.form, 'recordZone', recordParts[1]) + + this.$set(this.form, 'recordYear', recordParts[2]) + this.$set(this.form, 'recordSeq', recordParts[3]) } this.open_check = true this.title = "鏌ョ湅妗f璁板綍" @@ -834,11 +1088,18 @@ this.getList() }) } else { + console.log(this.form) + addRecords(this.form).then(response => { + console.log(response) + if(response.code==0) + this.$modal.msgError(response.msg) + else{ this.$modal.msgSuccess("鏂板鎴愬姛") this.open = false - this.getList() this.getId() + this.getList()} + }) } @@ -885,3 +1146,27 @@ } } </script> + +<style scoped> +/* 鍔犲琛ㄦ牸搴曢儴婊氬姩鏉� */ +::v-deep .el-table__body-wrapper::-webkit-scrollbar { + height: 20px; /* 妯悜婊氬姩鏉¢珮搴� */ +} + +/* 婊氬姩鏉¤建閬� */ +::v-deep .el-table__body-wrapper::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 10px; +} + +/* 婊氬姩鏉℃粦鍧� */ +::v-deep .el-table__body-wrapper::-webkit-scrollbar-thumb { + background: #c1c1c1; + border-radius: 10px; +} + +/* 婊氬姩鏉℃粦鍧楁偓鍋滄晥鏋� */ +::v-deep .el-table__body-wrapper::-webkit-scrollbar-thumb:hover { + background: #2f91ec; +} +</style> -- Gitblit v1.9.1