From 1a64a71d96069b92c84d781ce2e39dc29f630ada Mon Sep 17 00:00:00 2001 From: fei <791364011@qq.com> Date: 星期二, 09 九月 2025 17:40:22 +0800 Subject: [PATCH] 新增了代码 --- src/views/archiveManager/index.vue | 411 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 360 insertions(+), 51 deletions(-) diff --git a/src/views/archiveManager/index.vue b/src/views/archiveManager/index.vue index cbd0c09..5087411 100644 --- a/src/views/archiveManager/index.vue +++ b/src/views/archiveManager/index.vue @@ -70,12 +70,21 @@ </el-select> </el-form-item> <el-form-item label="瀵嗙骇" prop="securityClassification"> - <el-input + + + <el-select v-model="queryParams.securityClassification" - placeholder="璇疯緭鍏ュ瘑绾�" + placeholder="璇烽�夋嫨瀵嗙骇" clearable - @keyup.enter.native="handleQuery" - /> + > + <el-option + v-for="item in securityLevelOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> <el-form-item label="妗堝嵎椤垫暟" prop="pageCount"> <el-input @@ -214,7 +223,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"> @@ -235,17 +246,45 @@ <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" width="160" class-name="small-padding fixed-width"> + + <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 + v-if="scope.row.ownData" + size="mini" type="text" icon="el-icon-edit" @click="handleInfo(scope.row)" v-hasPermi="['system:records:edit']" >妗堝嵎璇︾粏淇℃伅</el-button> + <el-button - v-if="scope.row.ownData||scope.row.userId==1" + size="mini" + type="text" + icon="el-icon-edit" + @click="handleCheck(scope.row)" + >鏌ョ湅</el-button> + <el-button + v-if="userId!==1" + + 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" size="mini" type="text" @@ -260,7 +299,7 @@ @click="handleDelete(scope.row)" v-hasPermi="['system:records:remove']" >鍒犻櫎</el-button> - <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"> + <el-dropdown size="mini" v-hasPermi="['system:records:remove']" @command="(command) => handleCommand(command, scope.row)"> <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏇村</el-button> <el-dropdown-menu slot="dropdown"> @@ -279,19 +318,127 @@ :limit.sync="queryParams.pageSize" @pagination="getList" /> - - <!-- 娣诲姞鎴栦慨鏀规。妗堣褰曞璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> + <!-- 鏌ョ湅鏁版嵁鎸夐挳 --> + <el-dialog :title="title" :visible.sync="open_check" width="800px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form-item label="妗f鍙�" > + + +<el-row :gutter="8"> + <el-col :span="6"> + <el-select + v-model="form.recordType" + placeholder="閫夋嫨妗f绫诲瀷" + disabled + @change="handleRecordTypeChange" + > + <el-option + v-for="item in recordTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-col> + <el-col :span="6"> + <el-input + v-model="form.recordYear" + placeholder="杈撳叆骞翠唤" + disabled + + + @input="generateRecordId" + /> + </el-col> + <el-col :span="6"> + <el-input + v-model="form.recordSeq" + placeholder="鑷姩鐢熸垚" + disabled + /> + </el-col> +</el-row> + </el-form-item> + <el-form-item label="鍙戞枃鍙�" prop="inquiryNumber"> + <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/> + </el-form-item> + <div v-if="vis"> + <el-form-item label="妗堝嵎棰樺悕" prop="caseTitle"> + <el-input v-model="form.caseTitle" placeholder="璇疯緭鍏ユ鍗烽鍚�" disabled/> + </el-form-item> + <el-form-item label="鍏紑灞炴��" prop="publicAttribute"> + <el-input v-model="form.publicAttribute" placeholder="璇疯緭鍏ュ叕寮�灞炴��" disabled /> + </el-form-item> + <el-form-item label="缂栧埗鍗曚綅" prop="preparationUnit"> + <el-input v-model="form.preparationUnit" placeholder="璇疯緭鍏ョ紪鍒跺崟浣�" disabled/> + </el-form-item> + <el-form-item label="缂栧埗鏃ユ湡" prop="preparationDate"> + <el-date-picker clearable + v-model="form.preparationDate" + type="date" + disabled + + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨缂栧埗鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> + <el-input v-model="form.retentionPeriod" placeholder="璇疯緭鍏ヤ繚绠℃湡闄�" disabled/> + </el-form-item> + <el-form-item label="瀵嗙骇" prop="securityClassification"> + <el-input v-model="form.securityClassification" placeholder="璇疯緭鍏ュ瘑绾�" disabled/> + </el-form-item> + <el-form-item label="妗堝嵎椤垫暟" prop="pageCount"> + <el-input v-model="form.pageCount" placeholder="璇疯緭鍏ユ鍗烽〉鏁�" disabled/> + </el-form-item> + <el-form-item label="绔嬫鍙�" prop="filingNumber"> + <el-input v-model="form.filingNumber" placeholder="璇疯緭鍏ョ珛妗堝彿" disabled/> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅" prop="constructionUnit"> + <el-input v-model="form.constructionUnit" placeholder="璇疯緭鍏ュ缓璁惧崟浣�" disabled /> + </el-form-item> + <el-form-item label="寤鸿鍦板潃" prop="constructionAddress"> + <el-input v-model="form.constructionAddress" placeholder="璇疯緭鍏ュ缓璁惧湴鍧�" disabled/> + </el-form-item> + + <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> + <el-input v-model="form.projectNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�" disabled/> + </el-form-item> + <el-form-item label="鎵弿鍔犲伐鍏徃" prop="scanningCompany"> + <el-input v-model="form.scanningCompany" placeholder="璇疯緭鍏ユ壂鎻忓姞宸ュ叕鍙�" disabled/> + </el-form-item> + <el-form-item label="妗f绠�(瀹�)鍙�" prop="archiveRoomNumber"> + <el-input v-model="form.archiveRoomNumber" placeholder="璇疯緭鍏ユ。妗堢(瀹�)鍙�" disabled/> + </el-form-item> + <el-form-item label="缂╁井鍙�" prop="microfilmNumber"> + <el-input v-model="form.microfilmNumber" placeholder="璇疯緭鍏ョ缉寰彿" disabled/> + </el-form-item> + <el-form-item label="澶囨敞" prop="remarks"> + <el-input v-model="form.remarks" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" disabled/> + </el-form-item> + <el-form-item label="鍘嗗彶鐩稿叧鍙戞枃鍙�" prop="historicalReferenceNumber"> + <el-input v-model="form.historicalReferenceNumber" placeholder="璇疯緭鍏ュ巻鍙茬浉鍏冲彂鏂囧彿" disabled/> + </el-form-item> + </div> + </el-form> + + </el-dialog> + <!-- 娣诲姞鎴栦慨鏀规。妗堣褰曞璇濇 --> + <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鍙�" prop="recordId"> <el-row :gutter="8"> <el-col :span="6"> <el-select + v-model="form.recordType" placeholder="閫夋嫨妗f绫诲瀷" @change="handleRecordTypeChange" - > + :disabled="userId!=1" > <el-option v-for="item in recordTypeOptions" :key="item.value" @@ -300,14 +447,32 @@ /> </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="杈撳叆骞翠唤" @input="generateRecordId" +:disabled="userId!=1" /> </el-col> - <el-col :span="6"> + <el-col :span="4"> <el-input v-model="form.recordSeq" placeholder="鑷姩鐢熸垚" @@ -317,18 +482,48 @@ </el-row> </el-form-item> <el-form-item label="鍙戞枃鍙�" prop="inquiryNumber"> - <el-input v-model="form.inquiryNumber" placeholder="璇疯緭鍏ュ彂闂彿" /> + <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="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" /> + <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-form-item> <el-form-item label="鍏紑灞炴��" prop="publicAttribute"> - <el-input v-model="form.publicAttribute" placeholder="璇疯緭鍏ュ叕寮�灞炴��" /> + + + <el-select + v-model="form.publicAttribute" + placeholder="璇烽�夋嫨鍏紑灞炴��" + clearable + > + <el-option + v-for="item in publicAttributeOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> </el-form-item> + <el-form-item label="缂栧埗鍗曚綅" prop="preparationUnit"> <el-input v-model="form.preparationUnit" placeholder="璇疯緭鍏ョ紪鍒跺崟浣�" /> </el-form-item> @@ -341,10 +536,32 @@ </el-date-picker> </el-form-item> <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> - <el-input v-model="form.retentionPeriod" placeholder="璇疯緭鍏ヤ繚绠℃湡闄�" /> + <el-select + v-model="form.retentionPeriod" + placeholder="璇烽�夋嫨淇濈鏈熼檺" + clearable + > + <el-option + v-for="item in retentionPeriodOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> </el-form-item> <el-form-item label="瀵嗙骇" prop="securityClassification"> - <el-input v-model="form.securityClassification" placeholder="璇疯緭鍏ュ瘑绾�" /> + <el-select + v-model="form.securityClassification" + placeholder="璇烽�夋嫨瀵嗙骇" + clearable + > + <el-option + v-for="item in securityLevelOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> </el-form-item> <el-form-item label="妗堝嵎椤垫暟" prop="pageCount"> <el-input v-model="form.pageCount" placeholder="璇疯緭鍏ユ鍗烽〉鏁�" /> @@ -358,7 +575,9 @@ <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="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" :disabled="userId!=1"/> + </el-form-item> <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> <el-input v-model="form.projectNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�" /> </el-form-item> @@ -388,18 +607,28 @@ </template> <script> -import { listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" +import { updateStatusById,listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" import { listAllCategory } from "@/api/system/category" - +import { listName } from "@/api/system/projectName" +import { listPlaceName } from "@/api/system/placeName" export default { name: "Records", data() { return { + open_check: false, + securityLevelOptions: [ + { value: '绉樺瘑', label: '绉樺瘑' }, + { value: '鏅��', label: '鏅��' } + ], maxId: 0, - // 妗f绫诲瀷閫夐」 - recordTypeOptions: [], - // 淇濈鏈熼檺閫夐」 - retentionPeriodOptions: [ + // 椤圭洰鍚嶇О閫夐」 + projectOptions: [], + // 妗f绫诲瀷閫夐」 + recordTypeOptions: [], + //鍦板尯绫诲瀷 + zoneTypeOptions: [], + // 淇濈鏈熼檺閫夐」 + retentionPeriodOptions: [ { value: "10骞�", label: "10骞�" }, { value: "30骞�", label: "30骞�" }, { value: "姘镐箙", label: "姘镐箙" } @@ -411,7 +640,8 @@ { value: "鍏嶄簣鍏紑", label: "鍏嶄簣鍏紑" } ], amio: false, - vis: false, + userId: null, + vis: true, // 閬僵灞� loading: true, // 閫変腑鏁扮粍 @@ -436,6 +666,7 @@ pageSize: 10, recordId: null, inquiryNumber: null, + everyProjectName: null, caseTitle: null, publicAttribute: null, preparationUnit: null, @@ -466,44 +697,74 @@ inquiryNumber: [ { required: true, message: "鍙戦棶鍙蜂笉鑳戒负绌�", trigger: "blur" } ], - projectName: [ - { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + everyProjectName: [ + { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: ['change', 'blur']} ], } } }, created() { - this.getList() + this.userId = this.$store.state.user.id; + +// 鑾峰彇鐢ㄦ埛瑙掕壊 this.getId() this.getRecordTypes() - - + this.getZoneOptions() + this.fetchProjectOptions() +this.getList() }, methods: { getId() { - var _this = this; + var _this = this; getMaxId().then(response=>{ // alert(213) console.log(response) - _this.maxId = String(response.data).padStart(5, '0') - - _this.$set(_this.form, 'recordSeq', _this.maxId) // - + _this.maxId = String(response.data).padStart(4, '0') + + _this.$set(_this.form, 'recordSeq', _this.maxId) // + // alert(this.maxId) }) }, + async getZoneOptions() + { + try { + const response = await listPlaceName() + console.log(response) + // alert(134) + this.zoneTypeOptions = response.data.data.map(item => ({ + value: item.nnumber, + label: item.name + })) + } catch (error) { + console.error('鑾峰彇椤圭洰鍚嶇О鍒楄〃澶辫触:', error) + } + }, + async fetchProjectOptions() { + try { + const response = await listName() + console.log(response) + this.projectOptions = response.data.data.map(item => ({ + value: item.name, + label: item.name + })) + } catch (error) { + console.error('鑾峰彇椤圭洰鍚嶇О鍒楄〃澶辫触:', error) + } + }, /** 鑾峰彇妗f绫诲瀷鍒楄〃 */ getRecordTypes() { - listAllCategory().then(response => { - console.log(response) - console.log("----=============--------------") - this.recordTypeOptions = response.data.map(item => ({ - value: item.numb, - label: item.nname - })) - }) + return new Promise((resolve) => { + listAllCategory().then(response => { + this.recordTypeOptions = response.data.map(item => ({ + value: item.numb, + label: item.nname + })) + resolve() + }) + }) }, /** 妗f绫诲瀷鍙樻洿澶勭悊 */ @@ -513,14 +774,15 @@ /** 鐢熸垚妗f鍙� */ generateRecordId() { - - if (this.form.recordType && this.form.recordYear) { + + if (this.form.recordType && this.form.recordZone && this.form.recordYear) { + // 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}` // }) } }, @@ -548,6 +810,7 @@ id: null, recordId: null, inquiryNumber: null, + everyProjectName: null, caseTitle: null, publicAttribute: null, preparationUnit: null, @@ -599,26 +862,68 @@ var mid = row.id const roleId = 2 - alert(mid) + // alert(mid) var recordId = mid // this.$router.push("/archiveManager/infoManagerAu/user/" + roleId+"/"+recordId) 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) { this.reset() - this.vis = true; + if(this.userId===1) + this.vis = false; const id = row.id || this.ids getRecords(id).then(response => { console.log(response) console.log("----=============--------------") this.form = response.data + // 纭繚recordTypeOptions宸插姞杞� + if(this.recordTypeOptions.length > 0) { + const recordParts = response.data.recordId.split('-') + this.$set(this.form, 'recordType', recordParts[0]) + 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璁板綍" }) }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleCheck(row) { + +this.vis = true; +const id = row.id || this.ids +getRecords(id).then(response => { + console.log(response) + console.log("----=============--------------") + this.form = response.data + if(this.recordTypeOptions.length > 0) { + const recordParts = response.data.recordId.split('-') + this.$set(this.form, 'recordType', recordParts[0]) + 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璁板綍" +}) +}, + /** 鎻愪氦鎸夐挳 */ submitForm() { this.$refs["form"].validate(valid => { @@ -630,10 +935,14 @@ this.getList() }) } else { + console.log(this.form) addRecords(this.form).then(response => { this.$modal.msgSuccess("鏂板鎴愬姛") this.open = false + this.getId() this.getList() + + }) } } -- Gitblit v1.9.1