From 7a27d189379110ec1b9dcb356f73dcae66756ab0 Mon Sep 17 00:00:00 2001 From: feige <791364011@qq.com> Date: 星期一, 04 八月 2025 21:42:34 +0800 Subject: [PATCH] 增加了各种代码 --- src/views/archiveManager/archiveMaterial/index.vue | 641 +++++++++++++++++++ src/views/archiveManager/arMAutoUser.vue | 53 + src/views/system/user/index.vue | 6 src/api/system/archiverecordstouser.js | 52 + src/views/archiveManager/seleUser.vue | 16 src/api/system/category.js | 52 + src/api/system/materials.js | 44 + src/views/archiveCategory/index.vue | 259 +++++++ src/views/archiveManager/index.vue | 176 ++++ src/views/archiveStatics/index.vue | 633 +++++++++++++++++++ src/router/index.js | 15 src/api/system/records.js | 9 12 files changed, 1,910 insertions(+), 46 deletions(-) diff --git a/src/api/system/archiverecordstouser.js b/src/api/system/archiverecordstouser.js new file mode 100644 index 0000000..87f0296 --- /dev/null +++ b/src/api/system/archiverecordstouser.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� +export function listArchiverecordstouser(query) { + return request({ + url: '/system/archiverecordstouser/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戣缁� +export function getArchiverecordstouser(id) { + return request({ + url: '/system/archiverecordstouser/' + id, + method: 'get' + }) +} + +// 鏂板銆愯濉啓鍔熻兘鍚嶇О銆� +export function addArchiverecordstouser(data) { + return request({ + url: '/system/archiverecordstouser', + method: 'post', + data: data + }) +} + +// 淇敼銆愯濉啓鍔熻兘鍚嶇О銆� +export function updateArchiverecordstouser(data) { + return request({ + url: '/system/archiverecordstouser', + method: 'put', + data: data + }) +} + +// 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆� +export function delArchiverecordstouser(id) { + return request({ + url: '/system/archiverecordstouser/' + id, + method: 'delete' + }) +} +// 鎺堟潈鐢ㄦ埛涓庢鍗风洰褰曠粦瀹氶�夋嫨 +export function authRecordToUser(data) { + return request({ + url: '/system/archiverecordstouser/authUserToArchive', + method: 'put', + params: data + }) +} diff --git a/src/api/system/category.js b/src/api/system/category.js new file mode 100644 index 0000000..4305f29 --- /dev/null +++ b/src/api/system/category.js @@ -0,0 +1,52 @@ +import request from '@/utils/request' + +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� +export function listCategory(query) { + return request({ + url: '/system/category/list', + method: 'get', + params: query + }) +} +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� +export function listAllCategory() { + return request({ + url: '/system/category/listAll', + method: 'get', + + }) +} + +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戣缁� +export function getCategory(id) { + return request({ + url: '/system/category/' + id, + method: 'get' + }) +} + +// 鏂板銆愯濉啓鍔熻兘鍚嶇О銆� +export function addCategory(data) { + return request({ + url: '/system/category', + method: 'post', + data: data + }) +} + +// 淇敼銆愯濉啓鍔熻兘鍚嶇О銆� +export function updateCategory(data) { + return request({ + url: '/system/category', + method: 'put', + data: data + }) +} + +// 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆� +export function delCategory(id) { + return request({ + url: '/system/category/' + id, + method: 'delete' + }) +} diff --git a/src/api/system/materials.js b/src/api/system/materials.js new file mode 100644 index 0000000..e8a1226 --- /dev/null +++ b/src/api/system/materials.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� +export function listMaterials(query) { + return request({ + url: '/system/materials/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戣缁� +export function getMaterials(materialId) { + return request({ + url: '/system/materials/' + materialId, + method: 'get' + }) +} + +// 鏂板銆愯濉啓鍔熻兘鍚嶇О銆� +export function addMaterials(data) { + return request({ + url: '/system/materials', + method: 'post', + data: data + }) +} + +// 淇敼銆愯濉啓鍔熻兘鍚嶇О銆� +export function updateMaterials(data) { + return request({ + url: '/system/materials', + method: 'put', + data: data + }) +} + +// 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆� +export function delMaterials(materialId) { + return request({ + url: '/system/materials/' + materialId, + method: 'delete' + }) +} diff --git a/src/api/system/records.js b/src/api/system/records.js index d2057e8..fa52a7c 100644 --- a/src/api/system/records.js +++ b/src/api/system/records.js @@ -8,7 +8,14 @@ params: query }) } - +//鏌ヨ褰撳墠鏈�澶�")= +export function getMaxId() +{ + return request({ + url: '/system/records/getMaxId', + method: 'get' + }) +} // 鏌ヨ妗f璁板綍璇︾粏 export function getRecords(id) { return request({ diff --git a/src/router/index.js b/src/router/index.js index 757abb6..9c62b6e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -116,13 +116,24 @@ permissions: ['system:records:edit'], children: [ { - path: 'user/:roleId(\\d+)', + path: 'user/:roleId(\\d+)/:archiveRecordsId', component: () => import('@/views/archiveManager/arMAutoUser'), name: 'AuthUser127', meta: { title: '鍒嗛厤鐢ㄦ埛', activeMenu: '/archiveManager/infoManager' } - } + }, + //妗堝嵎璇︾粏淇℃伅绠$悊 + { + path: 'archiveMaterialManager/:recordId', + component: () => import('@/views/archiveManager/archiveMaterial/index'), + name: 'ArchiveMaterialManager', + meta: { title: '璇︾粏淇℃伅', activeMenu: '/archiveManager/infoManager' } + }, ] }, + + + //妗堝嵎璇︾粏淇℃伅绠$悊 + //妗堝嵎鍒嗛厤鐢ㄦ埛 // { // path: '/archiveManager/infoAuthManager', diff --git a/src/views/archiveCategory/index.vue b/src/views/archiveCategory/index.vue new file mode 100644 index 0000000..cdcc401 --- /dev/null +++ b/src/views/archiveCategory/index.vue @@ -0,0 +1,259 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="缂栧彿" prop="numb"> + <el-input + v-model="queryParams.numb" + placeholder="璇疯緭鍏ョ紪鍙�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鍚嶇О" prop="nname"> + <el-input + v-model="queryParams.nname" + placeholder="璇疯緭鍏ュ悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:category:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['system:category:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:category:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:category:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="categoryList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + + <el-table-column label="缂栧彿" align="center" prop="numb" /> + <el-table-column label="鍚嶇О" align="center" prop="nname" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:category:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:category:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="缂栧彿" prop="numb"> + <el-input v-model="form.numb" placeholder="璇疯緭鍏ョ紪鍙�" /> + </el-form-item> + <el-form-item label="鍚嶇О" prop="nname"> + <el-input v-model="form.nname" placeholder="璇疯緭鍏ュ悕绉�" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listCategory, getCategory, delCategory, addCategory, updateCategory } from "@/api/system/category" + +export default { + name: "Category", + data() { + return { + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 銆愯濉啓鍔熻兘鍚嶇О銆戣〃鏍兼暟鎹� + categoryList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + numb: null, + nname: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + } + } + }, + created() { + this.getList() + }, + methods: { + /** 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� */ + getList() { + this.loading = true + listCategory(this.queryParams).then(response => { + this.categoryList = response.data.data + this.total = response.data.total + this.loading = false + }) + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false + this.reset() + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + numb: null, + nname: null + } + this.resetForm("form") + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1 + this.getList() + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm") + this.handleQuery() + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset() + this.open = true + this.title = "娣诲姞銆愯濉啓鍔熻兘鍚嶇О銆�" + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset() + const id = row.id || this.ids + getCategory(id).then(response => { + this.form = response.data + this.open = true + this.title = "淇敼銆愯濉啓鍔熻兘鍚嶇О銆�" + }) + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateCategory(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛") + this.open = false + this.getList() + }) + } else { + addCategory(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛") + this.open = false + this.getList() + }) + } + } + }) + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids + this.$modal.confirm('鏄惁纭鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆戠紪鍙蜂负"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delCategory(ids) + }).then(() => { + this.getList() + this.$modal.msgSuccess("鍒犻櫎鎴愬姛") + }).catch(() => {}) + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/category/export', { + ...this.queryParams + }, `category_${new Date().getTime()}.xlsx`) + } + } +} +</script> diff --git a/src/views/archiveManager/arMAutoUser.vue b/src/views/archiveManager/arMAutoUser.vue index 3117b2e..c978b7f 100644 --- a/src/views/archiveManager/arMAutoUser.vue +++ b/src/views/archiveManager/arMAutoUser.vue @@ -28,6 +28,7 @@ <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button + v-if="vws" type="primary" plain icon="el-icon-plus" @@ -61,21 +62,30 @@ <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="鐢ㄦ埛鍚嶇О" prop="userName" :show-overflow-tooltip="true" /> - <el-table-column label="鐢ㄦ埛鏄电О" prop="nickName" :show-overflow-tooltip="true" /> - <el-table-column label="閭" prop="email" :show-overflow-tooltip="true" /> - <el-table-column label="鎵嬫満" prop="phonenumber" :show-overflow-tooltip="true" /> - <el-table-column label="鐘舵��" align="center" prop="status"> + <el-table-column label="鐢ㄦ埛鍚嶇О" prop="sysUser.userName" :show-overflow-tooltip="true" /> + <el-table-column label="鐢ㄦ埛鏄电О" prop="sysUser.nickName" :show-overflow-tooltip="true" > + <template slot-scope="scope">{{scope.row.sysUser.nickName?scope.row.sysUser.nickName:'--'}}</template> + + </el-table-column> + <el-table-column label="閭" prop="sysUser.email" :show-overflow-tooltip="true" > + <template slot-scope="scope">{{scope.row.sysUser.email?scope.row.sysUser.email:'--'}}</template> + + </el-table-column> + <el-table-column label="鎵嬫満" prop="sysUser.phonenumber" :show-overflow-tooltip="true" > + <template slot-scope="scope">{{scope.row.sysUser.phonenumber?scope.row.sysUser.phonenumber:'--'}}</template> + + </el-table-column> + <!-- <el-table-column label="鐘舵��" align="center" prop="sysUser.status"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> </template> - </el-table-column> + </el-table-column> --> <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime) }}</span> </template> </el-table-column> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <el-table-column label="鎿嶄綔" align="center" prop="11" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button size="mini" @@ -95,20 +105,21 @@ :limit.sync="queryParams.pageSize" @pagination="getList" /> - <select-user ref="select" :roleId="queryParams.roleId" @ok="handleQuery" /> + <select-user ref="select" :roleId="queryParams.roleId" :recordId="queryParams.recordId" @ok="handleQuery" /> </div> </template> <script> import {UserRoleIdList, allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role" import selectUser from "./seleUser" - +import {listArchiverecordstouser,addArchiverecordstouser} from "@/api/system/archiverecordstouser" export default { name: "AuthUser1", dicts: ['sys_normal_disable'], components: { selectUser }, data() { return { + vws: true, // 閬僵灞� loading: true, // 閫変腑鐢ㄦ埛缁� @@ -126,15 +137,19 @@ pageNum: 1, pageSize: 10, roleId: undefined, - userName: undefined, - phonenumber: undefined + archiveRecordsId: undefined + // userName: undefined, + // phonenumber: undefined } } }, created() { const roleId = this.$route.params && this.$route.params.roleId - if (roleId) { + const recordId = this.$route.params && this.$route.params.archiveRecordsId + alert(recordId) + if (roleId&&recordId) { this.queryParams.roleId = roleId + this.queryParams.archiveRecordsId = recordId this.getList() } }, @@ -144,9 +159,10 @@ this.loading = true console.log(this.queryParams) console.log("------------") - UserRoleIdList(this.queryParams).then(response => { - this.userList = response.rows - this.total = response.total + listArchiverecordstouser(this.queryParams).then(response => { + console.log(response) + this.userList = response.data.data + this.total = response.data.total this.loading = false } ) @@ -199,3 +215,10 @@ } } </script> +<style scoped> +/* el-table 鍒楁暟鎹负绌鸿嚜鍔ㄦ樉绀� -- */ +.className :empty::before{ + content:'--'; + color:gray; +} +</style> diff --git a/src/views/archiveManager/archiveMaterial/index.vue b/src/views/archiveManager/archiveMaterial/index.vue new file mode 100644 index 0000000..35ccbc2 --- /dev/null +++ b/src/views/archiveManager/archiveMaterial/index.vue @@ -0,0 +1,641 @@ +<template> + <div class="app-container"> + + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="璐d换鑰�" prop="creator"> + <el-input + v-model="queryParams.creator" + placeholder="璇疯緭鍏ヨ矗浠昏��" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鏂囦欢棰樺悕" prop="title"> + <el-input + v-model="queryParams.title" + placeholder="璇疯緭鍏ユ枃浠堕鐩�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鏃ユ湡" prop="date"> + <el-date-picker clearable + v-model="queryParams.date" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item label="椤靛彿" prop="pageNumber"> + <el-input + v-model="queryParams.pageNumber" + placeholder="璇疯緭鍏ラ〉鍙�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="椤垫" prop="pageOrder"> + <el-input + v-model="queryParams.pageOrder" + placeholder="璇疯緭鍏ラ〉娆�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎵�澶勯樁娈�" prop="stage"> + <el-select + v-model="queryParams.stage" + placeholder="璇烽�夋嫨鎵�澶勯樁娈�" + clearable + > + <el-option + v-for="item in stageOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + + <el-form-item label="鍏紑灞炴��" prop="publicity"> + <el-select + v-model="queryParams.publicity" + placeholder="璇烽�夋嫨鍏紑灞炴��" + clearable + > + <el-option + v-for="item in publicityOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鏄惁涓洪檮浠�" label-width="55" prop="isAttachment"> + <el-select + v-model="queryParams.isAttachment" + placeholder="璇烽�夋嫨鏄惁涓洪檮浠�" + clearable + > + <el-option + v-for="item in isAttachmentOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> + <el-select + v-model="queryParams.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="securityLevel"> + <el-select + v-model="queryParams.securityLevel" + 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="isSensitive"> + + + + <el-select + v-model="queryParams.isSensitive" + placeholder="璇疯緭鍏ユ槸鍚︽晱鎰�" + clearable + > + <el-option + v-for="item in isAttachmentOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled"> + + + <el-select + v-model="queryParams.isCanceled" + placeholder="璇疯緭鍏ユ槸鍚︽敞閿�" + clearable + > + <el-option + v-for="item in isAttachmentOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:materials:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['system:materials:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:materials:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:materials:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="materialsList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="璐d换鑰�" align="center" prop="creator" /> + <el-table-column label="鏂囦欢棰樺悕" align="center" prop="title" /> + <el-table-column label="鏃ユ湡" align="center" prop="date" width="180"> + <template slot-scope="scope"> + <span>{{ parseTime(scope.row.date, '{y}-{m}-{d}') }}</span> + </template> + </el-table-column> + <el-table-column label="椤靛彿" align="center" prop="pageNumber" /> + <el-table-column label="椤垫" align="center" prop="pageOrder" /> + <el-table-column label="鎵�澶勯樁娈�" align="center" prop="stage" /> + <el-table-column label="鍏紑灞炴��" align="center" prop="publicity" /> + <el-table-column label="鏄惁涓洪檮鍥惧強闄勪欢" align="center" prop="isAttachment" /> + + <el-table-column label="淇濈鏈熼檺" align="center" prop="retentionPeriod" /> + <el-table-column label="瀵嗙骇" align="center" prop="securityLevel" /> + <el-table-column label="鏄惁娑夊瘑鍙婃晱鎰熶俊鎭�" align="center" prop="isSensitive" /> + <el-table-column label="鏄惁娉ㄩ攢" align="center" prop="isCanceled" /> + <el-table-column label="鏍煎紡" align="center" prop="format" /> + <el-table-column label="骞呴潰" align="center" prop="sizeType" /> + <el-table-column label="姘村钩鍒嗚鲸鐜�" align="center" prop="horizontalResolution" /> + <el-table-column label="鍨傜洿鍒嗚鲸鐜�" align="center" prop="verticalResolution" /> + <el-table-column label="瀹藉害" align="center" prop="width" /> + <el-table-column label="楂樺害" align="center" prop="height" /> + <el-table-column label="澶у皬" align="center" prop="fileSize" /> + <el-table-column label="闄勪欢鍙婂巻鍙插彂闂彿" align="center" prop="attachmentHistoryNumbers" /> + + <el-table-column label="鎿嶄綔" align="center" width="160" class-name="small-padding "> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:materials:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:materials:edit']" + >瀵煎叆闄勪欢</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:materials:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="璐d换鑰�" prop="creator"> + <el-input v-model="form.creator" placeholder="璇疯緭鍏ヨ矗浠昏��" /> + </el-form-item> + <el-form-item label="鏂囦欢棰樺悕" prop="title"> + <el-input v-model="form.title" placeholder="璇疯緭鍏ユ枃浠堕鍚�" /> + </el-form-item> + <el-form-item label="鏃ユ湡" prop="date"> + <el-date-picker clearable + v-model="form.date" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item label="椤靛彿" prop="pageNumber"> + <el-input v-model="form.pageNumber" placeholder="璇疯緭鍏ラ〉鍙�" /> + </el-form-item> + <el-form-item label="椤垫" prop="pageOrder"> + <el-input v-model="form.pageOrder" placeholder="璇疯緭鍏ラ〉娆�" /> + </el-form-item> + <el-form-item label="鎵�澶勯樁娈�" prop="stage"> + <el-select + v-model="form.stage" + placeholder="璇烽�夋嫨鎵�澶勯樁娈�" + > + <el-option + v-for="item in stageOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鍏紑灞炴��" prop="publicity"> + <el-select + v-model="form.publicity" + placeholder="璇烽�夋嫨鍏紑灞炴��" + > + <el-option + v-for="item in publicityOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + + <el-form-item label="鏄惁涓洪檮浠�" prop="isAttachment"> + <el-select + v-model="form.isAttachment" + placeholder="璇烽�夋嫨鏄惁涓洪檮浠�" + > + <el-option + v-for="item in isAttachmentOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + + <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> + <el-select + v-model="form.retentionPeriod" + placeholder="璇烽�夋嫨淇濈鏈熼檺" + > + <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="securityLevel"> + <el-select + v-model="form.securityLevel" + placeholder="璇烽�夋嫨瀵嗙骇" + > + <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="isSensitive"> + <el-select + v-model="form.isSensitive" + placeholder="璇疯緭鍏ユ槸鍚︽晱鎰�" + > + <el-option + v-for="item in isAttachmentOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鏄惁娉ㄩ攢" prop="isCanceled"> + <el-select + v-model="form.isCanceled" + placeholder="璇疯緭鍏ユ槸鍚︽敞閿�" + > + <el-option + v-for="item in isAttachmentOptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> + </template> + + <script> + import { listMaterials, getMaterials, delMaterials, addMaterials, updateMaterials } from "@/api/system/materials" + + export default { + name: "Materials", + data() { + return { + // 娣诲姞瀵嗙骇閫夐」 + securityLevelOptions: [ + { value: '绉樺瘑', label: '绉樺瘑' }, + { value: '鏅��', label: '鏅��' } + ], + // 娣诲姞淇濈鏈熼檺閫夐」 + retentionPeriodOptions: [ + { value: '10骞�', label: '10骞�' }, + { value: '30骞�', label: '30骞�' }, + { value: '姘镐箙', label: '姘镐箙' } + ], + //娣诲姞鏄惁涓洪檮浠� + // 娣诲姞鏄惁涓洪檮浠堕�夐」 + isAttachmentOptions: [ + { value: '鏄�', label: '鏄�' }, + { value: '鍚�', label: '鍚�' } + ], + // 娣诲姞鍏紑灞炴�ч�夐」 + publicityOptions: [ + { value: '涓诲姩鍏紑', label: '涓诲姩鍏紑' }, + { value: '渚濈敵璇峰叕寮�', label: '渚濈敵璇峰叕寮�' }, + { value: '鍏嶄簣鍏紑', label: '鍏嶄簣鍏紑' } + ], + // 娣诲姞闃舵閫夐」 + stageOptions: [ + { value: '01-鐢宠鏉愭枡', label: '01-鐢宠鏉愭枡' }, + { value: '02-鍔炴杩囩▼鏉愭枡', label: '02-鍔炴杩囩▼鏉愭枡' }, + { value: '03-缁撹鎬ф枃浠�', label: '03-缁撹鎬ф枃浠�' }, + { value: '04-鍏朵粬鏉愭枡', label: '04-鍏朵粬鏉愭枡' }, + { value: '05-妗f鍙樻洿鏉愭枡', label: '05-妗f鍙樻洿鏉愭枡' } + ], + recordId: null, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 銆愯濉啓鍔熻兘鍚嶇О銆戣〃鏍兼暟鎹� + materialsList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + creator: null, + title: null, + date: null, + pageNumber: null, + pageOrder: null, + stage: null, + publicity: null, + isAttachment: null, + isDiagram: null, + retentionPeriod: null, + securityLevel: null, + isSensitive: null, + isCanceled: null, + format: null, + sizeType: null, + horizontalResolution: null, + verticalResolution: null, + width: null, + height: null, + fileSize: null, + attachmentHistoryNumbers: null, + remarks: null, + createdAt: null, + updatedAt: null, + recordId: null + }, + // 琛ㄥ崟鍙傛暟 + form: { + // ... 鍏朵粬form灞炴�т繚鎸佷笉鍙� ... + securityLevel: '鏅��' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + }, + // 琛ㄥ崟鏍¢獙 + rules: { + creator: [ + { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" } + ], + title: [ + { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" } + ], + date: [ + { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" } + ], + } + } + }, + created() { + //const roleId = this.$route.params && this.$route.params.roleId + const recordId = this.$route.params && this.$route.params.recordId + alert(recordId) + this.recordId = recordId; + if (recordId) { + + this.queryParams.recordId = recordId + this.getList() + } + }, + methods: { + /** 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� */ + getList() { + this.loading = true + listMaterials(this.queryParams).then(response => { + console.log(response) + this.materialsList = response.data.data + this.total = response.data.total + this.loading = false + }) + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false + this.reset() + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + materialId: null, + creator: null, + title: null, + date: null, + pageNumber: null, + pageOrder: null, + stage: null, + publicity: null, + isAttachment: null, + isDiagram: null, + retentionPeriod: null, + securityLevel: null, + isSensitive: null, + isCanceled: null, + format: null, + sizeType: null, + horizontalResolution: null, + verticalResolution: null, + width: null, + height: null, + fileSize: null, + attachmentHistoryNumbers: null, + remarks: null, + createdAt: null, + updatedAt: null, + recordId: null + } + this.resetForm("form") + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1 + this.getList() + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm") + this.handleQuery() + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.materialId) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset() + this.form.securityLevel = '鏅��' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + this.form.isSensitive = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + this.form.isCanceled = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + this.form.isAttachment = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + this.form.isDiagram = '鍚�' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + this.form.retentionPeriod = '姘镐箙' // 璁剧疆瀵硅瘽妗嗚〃鍗曢粯璁ゅ�� + this.open = true + this.title = "娣诲姞妗堝嵎璇︾粏淇℃伅" + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset() + const materialId = row.materialId || this.ids + getMaterials(materialId).then(response => { + this.form = response.data + this.open = true + this.title = "淇敼妗堝嵎璇︾粏淇℃伅" + }) + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.materialId != null) { + updateMaterials(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛") + this.open = false + this.getList() + }) + } else { + console.log(this.form) + this.form.recordId = this.recordId + console.log("==============+++++++++++++++============") + addMaterials(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛") + this.open = false + this.getList() + }) + } + } + }) + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const materialIds = row.materialId || this.ids + this.$modal.confirm('鏄惁纭鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆戠紪鍙蜂负"' + materialIds + '"鐨勬暟鎹」锛�').then(function() { + return delMaterials(materialIds) + }).then(() => { + this.getList() + this.$modal.msgSuccess("鍒犻櫎鎴愬姛") + }).catch(() => {}) + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/materials/export', { + ...this.queryParams + }, `materials_${new Date().getTime()}.xlsx`) + } + } + } + </script> diff --git a/src/views/archiveManager/index.vue b/src/views/archiveManager/index.vue index 170ef67..cbd0c09 100644 --- a/src/views/archiveManager/index.vue +++ b/src/views/archiveManager/index.vue @@ -26,12 +26,18 @@ /> </el-form-item> <el-form-item label="鍏紑灞炴��" prop="publicAttribute"> - <el-input + <el-select v-model="queryParams.publicAttribute" - placeholder="璇疯緭鍏ュ叕寮�灞炴��" + placeholder="璇烽�夋嫨鍏紑灞炴��" clearable - @keyup.enter.native="handleQuery" - /> + > + <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 @@ -50,12 +56,18 @@ </el-date-picker> </el-form-item> <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> - <el-input + <el-select v-model="queryParams.retentionPeriod" - placeholder="璇疯緭鍏ヤ繚绠℃湡闄�" + placeholder="璇烽�夋嫨淇濈鏈熼檺" clearable - @keyup.enter.native="handleQuery" - /> + > + <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 @@ -226,14 +238,15 @@ <el-table-column label="鎿嶄綔" align="center" width="160" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button - v-if="amio" size="mini" type="text" icon="el-icon-edit" - @click="handleUpdate(scope.row)" + @click="handleInfo(scope.row)" v-hasPermi="['system:records:edit']" - >妗堝嵎璇︾粏淇℃伅绠$悊</el-button> + >妗堝嵎璇︾粏淇℃伅</el-button> <el-button + v-if="scope.row.ownData||scope.row.userId==1" + size="mini" type="text" icon="el-icon-edit" @@ -268,13 +281,46 @@ /> <!-- 娣诲姞鎴栦慨鏀规。妗堣褰曞璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-form-item label="妗f鍙�" prop="recordId"> - <el-input v-model="form.recordId" placeholder="璇疯緭鍏ユ。妗堝彿" /> + <el-dialog :title="title" :visible.sync="open" width="600px" 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绫诲瀷" + @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="杈撳叆骞翠唤" + @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="璇疯緭鍏ュ彂闂彿" /> + </el-form-item> + <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> + <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" /> </el-form-item> <div v-if="vis"> <el-form-item label="妗堝嵎棰樺悕" prop="caseTitle"> @@ -312,9 +358,7 @@ <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-form-item> + <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> <el-input v-model="form.projectNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�" /> </el-form-item> @@ -344,12 +388,28 @@ </template> <script> -import { listRecords, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" +import { listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" +import { listAllCategory } from "@/api/system/category" export default { name: "Records", data() { return { + maxId: 0, + // 妗f绫诲瀷閫夐」 + recordTypeOptions: [], + // 淇濈鏈熼檺閫夐」 + retentionPeriodOptions: [ + { value: "10骞�", label: "10骞�" }, + { value: "30骞�", label: "30骞�" }, + { value: "姘镐箙", label: "姘镐箙" } + ], + // 鍏紑灞炴�ч�夐」 + publicAttributeOptions: [ + { value: "涓诲姩鍏紑", label: "涓诲姩鍏紑" }, + { value: "渚濈敵璇峰叕寮�", label: "渚濈敵璇峰叕寮�" }, + { value: "鍏嶄簣鍏紑", label: "鍏嶄簣鍏紑" } + ], amio: false, vis: false, // 閬僵灞� @@ -395,7 +455,9 @@ historicalReferenceNumber: null }, // 琛ㄥ崟鍙傛暟 - form: {}, + form: { + recordSeq: '', + }, // 琛ㄥ崟鏍¢獙 rules: { recordId: [ @@ -404,13 +466,64 @@ inquiryNumber: [ { required: true, message: "鍙戦棶鍙蜂笉鑳戒负绌�", trigger: "blur" } ], + projectName: [ + { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], } } }, created() { this.getList() + + this.getId() + this.getRecordTypes() + + }, methods: { + getId() + { + 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) // + + // alert(this.maxId) + }) + }, + /** 鑾峰彇妗f绫诲瀷鍒楄〃 */ + getRecordTypes() { + listAllCategory().then(response => { + console.log(response) + console.log("----=============--------------") + this.recordTypeOptions = response.data.map(item => ({ + value: item.numb, + label: item.nname + })) + }) + }, + + /** 妗f绫诲瀷鍙樻洿澶勭悊 */ + handleRecordTypeChange() { + this.generateRecordId() + }, + + /** 鐢熸垚妗f鍙� */ + generateRecordId() { + + if (this.form.recordType && 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}` + // }) + } + }, /** 鏌ヨ妗f璁板綍鍒楄〃 */ getList() { this.loading = true @@ -451,7 +564,8 @@ archiveRoomNumber: null, microfilmNumber: null, remarks: null, - historicalReferenceNumber: null + historicalReferenceNumber: null, + recordSeq:null } this.resetForm("form") }, @@ -474,12 +588,26 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset() + this.form.recordSeq = this.maxId this.open = true this.vis = false; this.title = "娣诲姞妗f璁板綍" }, + /*鏌ョ湅璇︽儏*/ + handleInfo(row) + { + + var mid = row.id + const roleId = 2 + alert(mid) + var recordId = mid + // this.$router.push("/archiveManager/infoManagerAu/user/" + roleId+"/"+recordId) + this.$router.push("/archiveManager/infoManagerAu/archiveMaterialManager/" + recordId) + + }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { + this.reset() this.vis = true; const id = row.id || this.ids @@ -513,6 +641,7 @@ }, // 鏇村鎿嶄綔瑙﹀彂 handleCommand(command, row) { + switch (command) { case "handleDataScope": this.handleDataScope(row) @@ -527,8 +656,9 @@ /** 鍒嗛厤鐢ㄦ埛鎿嶄綔 */ handleAuthUser: function(row) { const roleId = 2 - alert(roleId) - this.$router.push("/archiveManager/infoManagerAu/user/" + roleId) + var archiveRecordsId = row.recordId + // alert(roleId) + this.$router.push("/archiveManager/infoManagerAu/user/" + roleId+"/"+archiveRecordsId) }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { diff --git a/src/views/archiveManager/seleUser.vue b/src/views/archiveManager/seleUser.vue index 6faa5ed..6249c65 100644 --- a/src/views/archiveManager/seleUser.vue +++ b/src/views/archiveManager/seleUser.vue @@ -57,12 +57,17 @@ </template> <script> + import {listArchiverecordstouser,addArchiverecordstouser,authRecordToUser} from "@/api/system/archiverecordstouser" + import { UserRoleIdList,unallocatedUserList, authUserSelectAll } from "@/api/system/role" export default { dicts: ['sys_normal_disable'], props: { // 瑙掕壊缂栧彿 roleId: { + type: [Number, String] + }, + recordId: { type: [Number, String] } }, @@ -81,6 +86,7 @@ pageNum: 1, pageSize: 10, roleId: undefined, + recordId: undefined, userName: undefined, phonenumber: undefined } @@ -90,6 +96,7 @@ // 鏄剧ず寮规 show() { this.queryParams.roleId = this.roleId + this.queryParams.recordId = this.recordId this.getList() this.visible = true }, @@ -103,6 +110,8 @@ // 鏌ヨ琛ㄦ暟鎹� getList() { UserRoleIdList(this.queryParams).then(res => { + console.log("=------00000000009") + console.log(res) this.userList = res.rows this.total = res.total }) @@ -119,13 +128,16 @@ }, /** 閫夋嫨鎺堟潈鐢ㄦ埛鎿嶄綔 */ handleSelectUser() { - const roleId = this.queryParams.roleId + const recordId = this.queryParams.recordId const userIds = this.userIds.join(",") + + alert(recordId) + alert(userIds) if (userIds == "") { this.$modal.msgError("璇烽�夋嫨瑕佸垎閰嶇殑鐢ㄦ埛") return } - authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => { + authRecordToUser({ recordId: recordId, userIds: userIds }).then(res => { this.$modal.msgSuccess(res.msg) this.visible = false this.$emit("ok") diff --git a/src/views/archiveStatics/index.vue b/src/views/archiveStatics/index.vue new file mode 100644 index 0000000..8f47ff1 --- /dev/null +++ b/src/views/archiveStatics/index.vue @@ -0,0 +1,633 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="妗f鍙�1" prop="recordId"> + <el-input + v-model="queryParams.recordId" + placeholder="璇疯緭鍏ユ。妗堝彿" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鍙戞枃鍙�" prop="inquiryNumber"> + <el-input + v-model="queryParams.inquiryNumber" + placeholder="璇疯緭鍏ュ彂鏂囧彿" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="妗堝嵎棰樺悕" prop="caseTitle"> + <el-input + v-model="queryParams.caseTitle" + placeholder="璇疯緭鍏ユ鍗烽鍚�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鍏紑灞炴��" prop="publicAttribute"> + <el-select + v-model="queryParams.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="queryParams.preparationUnit" + placeholder="璇疯緭鍏ョ紪鍒跺崟浣�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="缂栧埗鏃ユ湡" prop="preparationDate"> + <el-date-picker clearable + v-model="queryParams.preparationDate" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨缂栧埗鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item label="淇濈鏈熼檺" prop="retentionPeriod"> + <el-select + v-model="queryParams.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="queryParams.securityClassification" + placeholder="璇疯緭鍏ュ瘑绾�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="妗堝嵎椤垫暟" prop="pageCount"> + <el-input + v-model="queryParams.pageCount" + placeholder="璇疯緭鍏ユ鍗烽〉鏁�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="绔嬫鍙�" prop="filingNumber"> + <el-input + v-model="queryParams.filingNumber" + placeholder="璇疯緭鍏ョ珛妗堝彿" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅" prop="constructionUnit"> + <el-input + v-model="queryParams.constructionUnit" + placeholder="璇疯緭鍏ュ缓璁惧崟浣�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="寤鸿鍦板潃" prop="constructionAddress"> + <el-input + v-model="queryParams.constructionAddress" + placeholder="璇疯緭鍏ュ缓璁惧湴鍧�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> + <el-input + v-model="queryParams.projectName" + placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> + <el-input + v-model="queryParams.projectNumber" + placeholder="璇疯緭鍏ラ」鐩紪鍙�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎵弿鍔犲伐鍏徃" prop="scanningCompany"> + <el-input + v-model="queryParams.scanningCompany" + placeholder="璇疯緭鍏ユ壂鎻忓姞宸ュ叕鍙�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="妗f绠�(瀹�)鍙�" prop="archiveRoomNumber"> + <el-input + v-model="queryParams.archiveRoomNumber" + placeholder="璇疯緭鍏ユ。妗堢(瀹�)鍙�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="缂╁井鍙�" prop="microfilmNumber"> + <el-input + v-model="queryParams.microfilmNumber" + placeholder="璇疯緭鍏ョ缉寰彿" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鍘嗗彶鐩稿叧鍙戞枃鍙�" prop="historicalReferenceNumber"> + <el-input + v-model="queryParams.historicalReferenceNumber" + placeholder="璇疯緭鍏ュ巻鍙茬浉鍏冲彂鏂囧彿" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:records:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['system:records:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:records:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['system:records:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="recordsList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> +<!-- <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="constructionAddress" /> + <el-table-column label="寤鸿椤圭洰鍚嶇О" align="center" prop="projectName" /> + <el-table-column label="鐘舵��" align="center" prop="projectName" /> + + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀规。妗堣褰曞璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="600px" 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绫诲瀷" + @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="杈撳叆骞翠唤" + @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="璇疯緭鍏ュ彂闂彿" /> + </el-form-item> + <el-form-item label="寤鸿椤圭洰鍚嶇О" prop="projectName"> + <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ缓璁鹃」鐩悕绉�" /> + </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-form-item> + <el-form-item label="缂栧埗鍗曚綅" prop="preparationUnit"> + <el-input v-model="form.preparationUnit" placeholder="璇疯緭鍏ョ紪鍒跺崟浣�" /> + </el-form-item> + <el-form-item label="缂栧埗鏃ユ湡" prop="preparationDate"> + <el-date-picker clearable + v-model="form.preparationDate" + type="date" + 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="璇疯緭鍏ヤ繚绠℃湡闄�" /> + </el-form-item> + <el-form-item label="瀵嗙骇" prop="securityClassification"> + <el-input v-model="form.securityClassification" placeholder="璇疯緭鍏ュ瘑绾�" /> + </el-form-item> + <el-form-item label="妗堝嵎椤垫暟" prop="pageCount"> + <el-input v-model="form.pageCount" placeholder="璇疯緭鍏ユ鍗烽〉鏁�" /> + </el-form-item> + <el-form-item label="绔嬫鍙�" prop="filingNumber"> + <el-input v-model="form.filingNumber" placeholder="璇疯緭鍏ョ珛妗堝彿" /> + </el-form-item> + <el-form-item label="寤鸿鍗曚綅" prop="constructionUnit"> + <el-input v-model="form.constructionUnit" placeholder="璇疯緭鍏ュ缓璁惧崟浣�" /> + </el-form-item> + <el-form-item label="寤鸿鍦板潃" prop="constructionAddress"> + <el-input v-model="form.constructionAddress" placeholder="璇疯緭鍏ュ缓璁惧湴鍧�" /> + </el-form-item> + + <el-form-item label="椤圭洰缂栧彿" prop="projectNumber"> + <el-input v-model="form.projectNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�" /> + </el-form-item> + <el-form-item label="鎵弿鍔犲伐鍏徃" prop="scanningCompany"> + <el-input v-model="form.scanningCompany" placeholder="璇疯緭鍏ユ壂鎻忓姞宸ュ叕鍙�" /> + </el-form-item> + <el-form-item label="妗f绠�(瀹�)鍙�" prop="archiveRoomNumber"> + <el-input v-model="form.archiveRoomNumber" placeholder="璇疯緭鍏ユ。妗堢(瀹�)鍙�" /> + </el-form-item> + <el-form-item label="缂╁井鍙�" prop="microfilmNumber"> + <el-input v-model="form.microfilmNumber" placeholder="璇疯緭鍏ョ缉寰彿" /> + </el-form-item> + <el-form-item label="澶囨敞" prop="remarks"> + <el-input v-model="form.remarks" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> + </el-form-item> + <el-form-item label="鍘嗗彶鐩稿叧鍙戞枃鍙�" prop="historicalReferenceNumber"> + <el-input v-model="form.historicalReferenceNumber" placeholder="璇疯緭鍏ュ巻鍙茬浉鍏冲彂鏂囧彿" /> + </el-form-item> + </div> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listRecords,getMaxId, getRecords, delRecords, addRecords, updateRecords } from "@/api/system/records" +import { listAllCategory } from "@/api/system/category" + +export default { + name: "Records", + data() { + return { + maxId: 0, + // 妗f绫诲瀷閫夐」 + recordTypeOptions: [], + // 淇濈鏈熼檺閫夐」 + retentionPeriodOptions: [ + { value: "10骞�", label: "10骞�" }, + { value: "30骞�", label: "30骞�" }, + { value: "姘镐箙", label: "姘镐箙" } + ], + // 鍏紑灞炴�ч�夐」 + publicAttributeOptions: [ + { value: "涓诲姩鍏紑", label: "涓诲姩鍏紑" }, + { value: "渚濈敵璇峰叕寮�", label: "渚濈敵璇峰叕寮�" }, + { value: "鍏嶄簣鍏紑", label: "鍏嶄簣鍏紑" } + ], + amio: false, + vis: false, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 妗f璁板綍琛ㄦ牸鏁版嵁 + recordsList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + recordId: null, + inquiryNumber: null, + caseTitle: null, + publicAttribute: null, + preparationUnit: null, + preparationDate: null, + retentionPeriod: null, + securityClassification: null, + pageCount: null, + filingNumber: null, + constructionUnit: null, + constructionAddress: null, + projectName: null, + projectNumber: null, + scanningCompany: null, + archiveRoomNumber: null, + microfilmNumber: null, + remarks: null, + historicalReferenceNumber: null + }, + // 琛ㄥ崟鍙傛暟 + form: { + recordSeq: '', + }, + // 琛ㄥ崟鏍¢獙 + rules: { + recordId: [ + { required: true, message: "妗f鍙蜂笉鑳戒负绌�", trigger: "blur" } + ], + inquiryNumber: [ + { required: true, message: "鍙戦棶鍙蜂笉鑳戒负绌�", trigger: "blur" } + ], + projectName: [ + { required: true, message: "椤圭洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], + } + } + }, + created() { + this.getList() + + this.getId() + this.getRecordTypes() + + + }, + methods: { + getId() + { + 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) // + + // alert(this.maxId) + }) + }, + /** 鑾峰彇妗f绫诲瀷鍒楄〃 */ + getRecordTypes() { + listAllCategory().then(response => { + console.log(response) + console.log("----=============--------------") + this.recordTypeOptions = response.data.map(item => ({ + value: item.numb, + label: item.nname + })) + }) + }, + + /** 妗f绫诲瀷鍙樻洿澶勭悊 */ + handleRecordTypeChange() { + this.generateRecordId() + }, + + /** 鐢熸垚妗f鍙� */ + generateRecordId() { + + if (this.form.recordType && 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}` + // }) + } + }, + /** 鏌ヨ妗f璁板綍鍒楄〃 */ + getList() { + this.loading = true + console.log(this.queryParams) + console.log("--------------") + listRecords(this.queryParams).then(response => { + + console.log(response) + this.recordsList = response.data.data + this.total = response.data.total + this.loading = false + }) + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false + this.reset() + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + recordId: null, + inquiryNumber: null, + caseTitle: null, + publicAttribute: null, + preparationUnit: null, + preparationDate: null, + retentionPeriod: null, + securityClassification: null, + pageCount: null, + filingNumber: null, + constructionUnit: null, + constructionAddress: null, + projectName: null, + projectNumber: null, + scanningCompany: null, + archiveRoomNumber: null, + microfilmNumber: null, + remarks: null, + historicalReferenceNumber: null, + recordSeq:null + } + this.resetForm("form") + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1 + this.getList() + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm") + this.handleQuery() + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset() + this.form.recordSeq = this.maxId + this.open = true + this.vis = false; + this.title = "娣诲姞妗f璁板綍" + }, + /*鏌ョ湅璇︽儏*/ + handleInfo(row) + { + + var mid = row.id + const roleId = 2 + alert(mid) + var recordId = mid + // this.$router.push("/archiveManager/infoManagerAu/user/" + roleId+"/"+recordId) + this.$router.push("/archiveManager/infoManagerAu/archiveMaterialManager/" + recordId) + + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + + this.reset() + this.vis = true; + const id = row.id || this.ids + getRecords(id).then(response => { + console.log(response) + console.log("----=============--------------") + this.form = response.data + this.open = true + this.title = "淇敼妗f璁板綍" + }) + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateRecords(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛") + this.open = false + this.getList() + }) + } else { + addRecords(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛") + this.open = false + this.getList() + }) + } + } + }) + }, + // 鏇村鎿嶄綔瑙﹀彂 + handleCommand(command, row) { + + switch (command) { + case "handleDataScope": + this.handleDataScope(row) + break + case "handleAuthUser": + this.handleAuthUser(row) + break + default: + break + } + }, + /** 鍒嗛厤鐢ㄦ埛鎿嶄綔 */ + handleAuthUser: function(row) { + const roleId = 2 + var archiveRecordsId = row.recordId + // alert(roleId) + this.$router.push("/archiveManager/infoManagerAu/user/" + roleId+"/"+archiveRecordsId) + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids + this.$modal.confirm('鏄惁纭鍒犻櫎妗f璁板綍缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delRecords(ids) + }).then(() => { + this.getList() + this.$modal.msgSuccess("鍒犻櫎鎴愬姛") + }).catch(() => {}) + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/records/export', { + ...this.queryParams + }, `records_${new Date().getTime()}.xlsx`) + } + } +} +</script> diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 0261c7a..609ffc2 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -3,7 +3,7 @@ <el-row :gutter="20"> <splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme"> <!--閮ㄩ棬鏁版嵁--> - <pane size="16"> +<!-- <pane size="16"> <el-col> <div class="head-container"> <el-input v-model="deptName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" clearable size="small" prefix-icon="el-icon-search" style="margin-bottom: 20px" /> @@ -12,7 +12,7 @@ <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" /> </div> </el-col> - </pane> + </pane> --> <!--鐢ㄦ埛鏁版嵁--> <pane size="84"> <el-col> @@ -550,4 +550,4 @@ } } } -</script> \ No newline at end of file +</script> -- Gitblit v1.9.1