From e389354f6154ffab9981308f8a842732db2f9085 Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期二, 01 十一月 2022 16:08:25 +0800 Subject: [PATCH] 整治列表 案件查询 图片管理 页面添加 --- src/views/operate/viewEvent/index.vue | 630 ++++++++++ src/views/operate/images/createUser/index.vue | 459 +++++++ src/views/operate/images/index.vue | 640 ++++++++++ src/views/operate/rectification/renovationList/components/viewInterface/index.vue | 80 src/views/operate/viewEvent/components/illExamine/index.vue | 284 ++++ src/views/operate/viewEvent/components/examine/index.vue | 283 ++++ src/views/operate/rectification/renovationList/index.vue | 139 + src/views/operate/viewEvent/components/closure/index.vue | 336 +++++ src/views/operate/viewEvent/components/illclosure/index.vue | 334 +++++ src/router/index.js | 10 src/views/operate/rectification/renovationList/components/createInterface/index.vue | 77 src/views/operate/images/updateUser/index.vue | 317 +++++ 12 files changed, 3,490 insertions(+), 99 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 4c1fc58..5bddef6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -253,6 +253,16 @@ path: 'log', name: 'log', component: () => import('@/views/operate/log'), + }, + { + path: 'viewEvent', + name: 'viewEvent', + component: () => import('@/views/operate/viewEvent'), + }, + { + path: 'images', + name: 'images', + component: () => import('@/views/operate/images'), } ] }, diff --git a/src/views/operate/images/createUser/index.vue b/src/views/operate/images/createUser/index.vue new file mode 100644 index 0000000..4b72bdc --- /dev/null +++ b/src/views/operate/images/createUser/index.vue @@ -0,0 +1,459 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form + ref="user" + label-width="140px" + autoComplete="on" + :model="depart" + :rules="createDepartRules" + label-position="right" + > + <!-- 閮ㄩ棬鍚嶇О --> + <el-form-item class="optionItem" label="闂绫诲瀷:" prop="departName"> + <el-input + v-model="depart.departName" + placeholder="璇疯緭鍏ラ棶棰樼被鍨�" + ></el-input> + </el-form-item> + <!-- 涓婄骇閮ㄩ棬 --> + <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="parentId"> + <el-select v-model="depart.parentId" placeholder="璇疯緭鍏ュぇ绫诲悕绉�"> + <el-option :value="mylabel"> + <el-tree + ref="tree" + :check-strictly="true" + :data="departList" + :props="defaultProps" + show-checkbox + @check-change="handleCheck" + default-expand-all + node-key="id" + > + </el-tree> + </el-option> + </el-select> + </el-form-item> + <!-- 閮ㄩ棬绫诲瀷 --> + <el-form-item class="optionItem" label="灏忕被鍚嶇О:" prop="departType"> + <el-select v-model="depart.departType" placeholder="璇烽�夋嫨灏忕被鍚嶇О"> + <el-option + v-for="item in departTypeList" + :key="item.id" + :label="item.name" + :value="item.id" + > + </el-option> + </el-select> + </el-form-item> + <!--娣诲姞浜哄憳 --> + <el-form-item class="optionItem add" label="娣诲姞鍥剧墖:"> + <ul class="addPerson"> + <li + v-for="(item, index) in checkedList" + :key="index" + @click="setLeader(index)" + > + <div class="li-item"> + <div class="li-icon"> + <i + :class="[ + 'el-icon-user-solid', + item.leader ? 'leader' : '', + ]" + ></i> + </div> + <label + style="font-size: 12px" + :class="[item.leader ? 'leader' : '']" + >{{ item.username }}</label + > + </div> + </li> + <li class="li-btn"> + <i class="el-icon-plus" @click="openUser = true"></i> + </li> + </ul> + <div class="card" v-if="openUser"> + <el-card class="box-card"> + <div slot="header" class="myclear"> + <span>宸ヤ綔浜哄憳</span> + <div @click="addUser">纭</div> + </div> + <div class="scrollWrap"> + <el-checkbox-group v-model="checkedUser"> + <el-checkbox + v-for="user in userList" + :label="user.id" + :key="user.id" + > + {{ user.username}} + </el-checkbox> + </el-checkbox-group> + </div> + <div class="hidebar"></div> + </el-card> + </div> + </el-form-item> + </el-form> + </div> + </main> + <footer> + <div class="optionBtn"> + <el-button @click="handleClose">鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click="handleUser" + >纭畾</el-button + > + </div> + </footer> + </div> +</template> +<script> +import { getTypeList } from "@/utils/helper"; +export default { + data() { + const validateNickname = (rule, value, callback) => { + if (!value) { + callback(new Error("璇峰~鍐欓儴闂ㄥ悕绉�")); + } else { + callback(); + } + }; + const validatePass = (rule, value, callback) => { + if (!value) { + callback(); + } else { + callback(); + } + }; + const validatePhone = (rule, value, callback) => { + if (!value) { + callback(); + } else { + callback(); + } + }; + return { + depart: { + departName: "", + parentId: "", + departType: "", + departDes: "", + }, + createDepartRules: { + departName: [ + { required: true, trigger: "blur", validator: validateNickname }, + ], + parentId: [ + { required: false, trigger: "blur", validator: validatePass }, + ], + departType: [ + { required: false, trigger: "blur", validator: validatePhone }, + ], + departDes: [{ required: false, trigger: "blur" }], + }, + userList: [], + departList: [], + checkedUser: [], + checkedList: [], + openUser: false, + departTypeList: [], + selectOrg: { + orgsid: [], + }, + mylabel: "", + defaultProps: { + children: "children", + label: "departName", + }, + }; + }, + created() { + const that = this; + // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥� + this.getDepartTree(); + // 鑾峰彇鐢ㄦ埛鍒楄〃 + this.getUserList(); + // 鑾峰彇閮ㄩ棬绫诲瀷鍒楄〃 + this.getDepartTypeList(); + }, + methods: { + handleUser() { + this.$refs.user.validate((valid) => { + if (valid) { + const { depart, checkedList, selectOrg } = this; + const arr = []; + checkedList.forEach((item) => { + arr.push({ leader: item.leader, userId: item.id }); + }); + console.log(arr); + this.$axios({ + method: "post", + url: "/sccg/depart/create", + data: { + departName: depart.departName, + parentId: selectOrg.orgsid[0], + departType: depart.departType, + departDes: depart.departDes, + departManagerList: arr, + }, + }).then((res) => { + if (res.code === 200) { + this.$message({ + message: res.message, + type: "success", + }); + this.refresh(); + } else if (res.code === 2001) { + this.$message({ + message: res.message, + type: "error", + }); + this.refresh(); + } + }); + } else { + return false; + } + }); + }, + // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥� + getDepartTree() { + this.$axios({ + method: "get", + url: "sccg/depart/tree", + }).then((res) => { + // console.log(res); + // res.data.unshift({ id: 0, departName: "椤剁骇鑿滃崟" }); + this.departList = res.data; + }); + }, + // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + getUserList() { + // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) + this.$axios.get(`/sccg/depart/query_surplus_user`).then((res) => { + if (res.code === 200) { + this.userList = res.data; + } + }); + }, + addUser() { + console.log(this.checkedUser); + console.log(this.userList); + this.checkedList = []; + this.userList.forEach((item) => { + this.checkedUser.forEach((child) => { + if (item.id == child) { + this.checkedList.push({ + id: item.id, + username: item.username, + leader: false, + }); + } + }); + }); + this.checkedList[0].leader = true; + this.openUser = false; + }, + handleClose() { + this.$emit("changMyDialog", { flag: false }); + }, + // 鑾峰彇閮ㄩ棬绫诲瀷 + async getDepartTypeList() { + this.departTypeList = await getTypeList(1, "08"); + }, + handleCheck(data, checked) { + this.depart.parentId = data.departName; + // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� + const indexs = this.selectOrg.orgsid.indexOf(data.id); + // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� + if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { + this.$message({ + message: "鍙兘閫夋嫨涓�涓儴闂紒", + type: "warning", + showClose: true, + }); + // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� + this.$refs.tree.setChecked(data, false); + } else if (this.selectOrg.orgsid.length === 0 && checked) { + // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 + // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push + this.selectOrg.orgsid = []; + this.selectOrg.orgsid.push(data.id); + } else if ( + indexs >= 0 && + this.selectOrg.orgsid.length === 1 && + !checked + ) { + // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� + this.selectOrg.orgsid = []; + this.depart.parentId = ""; + } + }, + // 璁剧疆棰嗗 + setLeader(idx) { + this.checkedList.forEach((item, index) => { + item.leader = index === idx; + }); + }, + }, + props: ["refresh", "changMyDialog"], +}; +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: #09152f; + + main { + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + &::v-deep .el-form-item__label { + color: #4b9bb7; + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + .addPerson { + display: flex; + list-style: none; + padding: 0; + flex-wrap: wrap; + max-width: 280px; + li { + color: #fff; + text-align: center; + font-size: 30px; + margin-left: 10px; + } + } + .li-icon { + background-color: #cccccc; + width: 36px; + height: 36px; + border-radius: 50%; + margin: 0 auto; + } + .li-btn { + background-color: #cccccc; + width: 36px; + height: 36px; + border-radius: 50%; + } + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + } + + .add { + position: relative; + + .card { + position: absolute; + z-index: 2000; + right: 0; + + .box-card { + min-height: 240px; + max-height: 260px; + overflow: hidden; + background-color: #09152f; + position: relative; + max-width: 220px; + + .scrollWrap { + overflow: scroll; + height: 180px; + position: relative; + color: #4b9bb7; + + .el-checkbox-group { + display: flex; + flex-direction: column; + + .el-checkbox { + line-height: 20px; + } + } + } + + .myclear { + width: 100%; + line-height: 20px; + color: #4b9bb7; + display: flex; + justify-content: space-between; + } + + .hidebar { + position: absolute; + top: 77px; + right: 20px; + width: 20px; + height: 180px; + background-color: #09152f; + } + + .item { + line-height: 40px; + } + } + } + } + } + + .li-item { + display: flex; + flex-direction: column; + } + + .leader { + color: red; + } + .el-input { + width: 280px !important; + } + footer { + border-top: 1px solid #fff; + height: 80px; + display: flex; + align-items: center; + justify-content: flex-end; + padding-right: 20px; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/images/index.vue b/src/views/operate/images/index.vue new file mode 100644 index 0000000..c0d8ecd --- /dev/null +++ b/src/views/operate/images/index.vue @@ -0,0 +1,640 @@ +<template> + <div class="userList"> + <header> + <div class="headerContent"> + <div class="search"> + <span>绫诲瀷鏌ヨ:</span> + <div class="option"> + <el-input v-model="info.type" placeholder="璇疯緭鍏ラ棶棰樻煡璇�"></el-input> + </div> + <span>涓婁紶鏃堕棿:</span> + <div class="option"> + <el-input v-model="info.startTime" placeholder="閫夋嫨涓婁紶鏃堕棿"></el-input> + </div> + <div class="findBtn"> + <el-button type="primary" @click="getUserList">鏌ヨ</el-button> + </div> + <div class="findBtn"> + <el-button type="primary" @click="addImages">娣诲姞鍥剧墖</el-button> + </div> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="type-nav"> + <div @click="changeTypeChecked(index)" v-for="(item, index) in typeList" :key="item.name" + :class="[item.checked ? 'is-active' : '', 'type-item']">{{ item.name }}</div> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="code" label="鎵�灞炰簨浠剁紪鍙�" min-width="18"> + </el-table-column> + <el-table-column prop="questionType" label="闂绫诲瀷" min-width="8"> + </el-table-column> + <el-table-column prop="bigType" label="澶х被鍚嶇О" min-width="8"> + </el-table-column> + <el-table-column prop="smallType" label="灏忕被鍚嶇О" min-width="8"> + </el-table-column> + <el-table-column prop="imagesId" label="鍥剧墖Id" min-width="8"> + </el-table-column> + <el-table-column prop="uploadTime" label="涓婁紶鏃堕棿" min-width="15" v-if="mystatus === 1"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <span @click="handleFind(scope.row)">鏌ョ湅</span> + <span class="line">|</span> + <span @click="handleUpdate(scope.row)">淇敼</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍒犻櫎</span> + </div> + </template> + </el-table-column> + </el-table> + <!-- 璇︽儏椤靛睍绀� --> + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" + :before-close="handleClose"> + <MyDetail :info=info v-if="mystatus == 1 ? true : false"></MyDetail> + <MyIllDetail :info=info v-else></MyIllDetail> + </el-dialog> + <!-- 涓婁紶椤甸潰 --> + <!-- <el-dialog :visible.sync="dialogUpload" width="80%" title="涓婁紶澶勭疆缁撴灉" v-if="dialogUpload" + :before-close="handleClose"> --> + <!-- <uploadVio v-if="mystatus === 1" :caseId="caseId" :mycode="caseCode" @closeDialog="closeDialog"></uploadVio> + <uploadIll v-else :caseId="caseId" :mycode="caseCode" @closeDialog="closeDialog"></uploadIll> --> + <!-- </el-dialog> --> + <!-- tools --> + <!-- 鏌ョ湅淇敼椤甸潰 --> + <el-dialog + :visible.sync="dialogUpdate" + width="40%" + title="淇敼" + v-if="dialogUpdate" + :before-close="handleClose" + > + <updateUser + /> + <!-- :updateFlag="updateFlag" + :userInfo="userInfo" + :getDepartList="context === '' ? getUserList : search" + @changeDialog="changMyDialog" --> + </el-dialog> + <el-dialog + :visible.sync="dialogcheck" + width="40%" + title="鏌ョ湅" + v-if="dialogcheck" + :before-close="handleClose" + > + <updateUser + /> + <!-- :updateFlag="updateFlag" + :userInfo="userInfo" + :getDepartList="context === '' ? getUserList : search" + @changeDialog="changMyDialog" --> + </el-dialog> + + <el-dialog + :visible.sync="dialogAdd" + width="40%" + title="娣诲姞" + v-if="dialogAdd" + :before-close="handleClose" + > + <createUser + /> + <!-- :updateFlag="updateFlag" + :userInfo="userInfo" + :getDepartList="context === '' ? getUserList : search" + @changeDialog="changMyDialog" --> + </el-dialog> + + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +// import uploadVio from './updateUser/uploadResult/vio' +// import uploadIll from "./updateUser/uploadResult/ill" +import createUser from "./createUser"; +import updateUser from "./updateUser"; +export default { + components: { + // updateUser, + // uploadVio, uploadIll, + updateUser, createUser + }, + data() { + return { + dialogUpdate:false, + dialogcheck:false, + tableData: [ + { + code: "SJ202211010001", + questionType: "杩濊", + bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", + imagesId: "1", + uploadTime: "2022-10-31 20:20:01" + }, + { + code: "SJ202211010001", + questionType: "杩濊", + bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", + imagesId: "1", + uploadTime: "2022-10-31 20:20:01" + }, + { + code: "SJ202211010001", + questionType: "杩濊", + bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", + imagesId: "1", + uploadTime: "2022-10-31 20:20:01" + }, + { + code: "SJ202211010001", + questionType: "杩濊", + bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", + imagesId: "1", + uploadTime: "2022-10-31 20:20:01" + } + ], + context: "", + dialogUpload: false, + // dialogUpdate: false, + dialogView: false, + updateFlag:false, + userInfo:{}, + info: {}, + totalNum: 5, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + typeList: [ + { + name: '鎽勫儚澶存帹閫�', + value: 1, + checked: true + }, + { + name: '鍗曞叺鎺ㄩ��', + value: 2, + checked: false, + }, + ], + statusArr: [], + mystatus: 1, + caseId: '', + caseCode: null, + dialogAdd:false, + } + }, + created() { + this.statusArr[0] = 6; + this.typeList.forEach(item => { + if (item.checked) { + this.statusArr[1] = item.value; + } + }) + this.getUserList(); + }, + methods: { + //淇敼 + handleUpdate(){ + this.dialogUpdate=true; + }, + // 鏌ョ湅 + handleFind(){ + this.dialogcheck=true; + }, + // 椤堕儴涓嬫媺妗� + setMystatus(value) { + console.log(value); + this.statusArr[1] = value; + this.changeTypeChecked(value - 1); + this.getUserList(); + }, + // 鎵归噺鍒犻櫎 + mulDelete(idArr) { + console.log(idArr); + this.$axios({ + method: 'delete', + url: 'sccg/violations/batch_delete?ids=' + idArr, + }).then(res => { + this.getUserList(); + this.$message({ + message: res.message, + type: res.code === 200 ? 'success' : 'warning' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� + selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + if (list === 3) { + this.preMyIdx = list; + this.mulDelete(this.tempList); + } + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鐩戝惉琛ㄦ牸 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.code); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 鍒犻櫎鍗曟潯鏁版嵁 + handleDelete({ number }) { + console.log(number); + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + console.log(1); + this.$axios({ + method: 'delete', + url: `sccg/violations/delete?id=${number}`, + }) + .then(res => { + console.log(res); + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => { console.log(2) }); + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + getUserList() { + const { currentPage, pageSize, context, statusArr } = this; + console.log(statusArr); + // this.$axios({ + // method: 'get', + // url: `sccg/base_case/query?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}` + // }).then(res => { + // this.totalNum = res.data.total; + // this.tableData = res.data.records; + // console.log(res); + // }) + }, + // 鏇存敼杩濊/杩濆缓 + changeTypeChecked(idx) { + this.typeList.forEach((item, index) => { + if (index === idx) { + item.checked = true; + } else { + item.checked = false; + } + }) + this.mystatus = idx + 1; + console.log(this.mystatus); + this.statusArr[1] = this.typeList[idx].value; + this.getUserList(); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.getUserList(); + }, + addImages(){ + this.dialogAdd=true; + }, + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUpload = false; + // this.dialogUpdate = false; + done(); + }) + .catch(_ => { }); + }, + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUpload = false; + // this.dialogUpdate = false; + done(); + }) + .catch(_ => { }); + }, + async JumpView(data) { + await this.getEventInfo(data.code); + }, + // 鑾峰彇妗堜欢淇℃伅 + async getEventInfo(code) { + await this.$axios({ + method: 'get', + url: `sccg/base_case/baseCaseDetail/${code}` + }) + .then(res => { + this.info = res.data; + this.dialogView = true; + }) + }, + opernDialog(data) { + this.dialogUpload = true; + this.caseId = data.id; + this.caseCode = data.code + // console.log(data); + }, + // 鍏抽棴涓婁紶鐣岄潰 + closeDialog({ flag }) { + this.dialogUpload = flag; + this.getUserList(); + }, + // 澶勭悊鏃堕棿 + filterTime(time) { + return helper(time); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: #09152f; + border: 1pox solid #fff; + + .headerContent { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + + .addBtn { + background-color: #eb5d01; + border: none; + border-radius: 20px; + padding: 12px 30px; + } + } + } + + &::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; + + .btn span:hover { + cursor: pointer; + } + + .type-nav { + display: flex; + line-height: 40px; + margin-left: 30px; + padding-top: 10px; + margin-bottom: 10px; + + .type-item { + width: 80px; + text-align: center; + + &:hover { + cursor: pointer; + } + } + + .is-active { + background-color: #070f22; + border-radius: 4px; + color: #fff; + } + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs-sp { + border: 1px solid #17324c; + } + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } + } + } + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .cell { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + } + + .line { + padding: 0 5px; + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue new file mode 100644 index 0000000..c25a5e3 --- /dev/null +++ b/src/views/operate/images/updateUser/index.vue @@ -0,0 +1,317 @@ +<template> + <div class="updateUser"> + <main> + <div class="mainContent"> + <el-form ref="user" style="width: 100%;"> + <el-form-item prop="code" label="鎵�灞炰簨浠剁紪鍙�" > + <el-input v-model="imagedata.code"></el-input> + </el-form-item> + <el-form-item prop="code" label="澶х被鍚嶇О" > + <el-input v-model="imagedata.questionType"></el-input> + </el-form-item> + <el-form-item prop="code" label="灏忕被鍚嶇О" > + <el-input v-model="imagedata.bigType"></el-input> + </el-form-item> + <el-form-item prop="code" label="鍥剧墖Id" > + <el-input v-model="imagedata.imagesId"></el-input> + </el-form-item> + <el-form-item prop="code" label="涓婁紶鏃堕棿" > + <el-input v-model="imagedata.uploadTime"></el-input> + </el-form-item> + <!-- <el-form-item prop="questionType" label="闂绫诲瀷" min-width="8" v-model="imagedata.questionType"> + </el-form-item> + <el-form-item prop="bigType" label="澶х被鍚嶇О" min-width="8" v-model="imagedata.bigType"> + </el-form-item> + <el-form-item prop="smallType" label="灏忕被鍚嶇О" min-width="8" v-model="imagedata.smallType"> + </el-form-item> + <el-form-item prop="imagesId" label="鍥剧墖Id" min-width="8" v-model="imagedata.imagesId"> + </el-form-item> + <el-form-item prop="uploadTime" label="涓婁紶鏃堕棿" min-width="15" v-model="imagedata.uploadTime"> --> + </el-form-item> + <!-- <el-form-item v-if="updateFlag"> --> + <div class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 + </el-button> + </div> + <!-- </el-form-item> --> + </el-form> + </div> + </main> + </div> +</template> +<script> +import { getTypeList } from "@/utils/helper"; +export default { + data() { + + return { + + imagedata: { + code: "SJ202211010001", + questionType: "杩濊", + bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", + imagesId: "1", + uploadTime: "2022-10-31 20:20:01" + }, + } + }, + created() { + // const that = this; + // this.user = JSON.parse(JSON.stringify(that.userInfo)); + // console.log(this.user); + // this.user.parentId = this.user.parentId === 0 ? '鏆傛棤涓婄骇閮ㄩ棬' : this.user.parentId; + // this.checkedList = this.user.userInfoDTOS; + // this.checkedList.forEach((e) => { + // this.checkedUser.push(e.userId); + // }); + // console.log(this.checkedUser) + // this.$axios({ + // method: "get", + // url: "sccg/depart/tree", + // }).then((res) => { + // that.departList = res.data; + // }); + // this.getUserList(this.user.id); + // // 鑾峰彇閮ㄩ棬绫诲瀷 + // this.getDepartType(); + }, + methods: { + // handleUser() { + // this.$refs["user"].validate((valid) => { + // if (valid) { + // const { user, checkedList } = this; + // const arr = []; + // checkedList.forEach((item) => { + // arr.push({ leader: item.leader, userId: item.id ? item.id : item.userId }); + // }); + // if (arr.length === 0) { + // this.$message({ + // type: 'warning', + // message: '璇烽�夋嫨閮ㄩ棬浜哄憳', + // }) + // } else { + // this.$axios + // .post("sccg/depart/update", { + // id: user.id, + // departName: user.departName, + // parentId: user.parentId === '鏆傛棤涓婄骇閮ㄩ棬' ? 0 : user.parentId, + // departDes: user.departDes, + // departManagerList: arr, + // }) + // .then((res) => { + // this.$message({ + // message: res.message, + // type: res.code === 200 ? "success" : "warning", + // }); + // this.$emit("changeDialog", { flag: false }); + // this.getDepartList(); + // }); + // } + // } else { + // return false; + // } + // }); + // }, + // // 鑾峰彇閮ㄩ棬绫诲瀷 + // async getDepartType() { + // this.typeList = await getTypeList(1, "08"); + // }, + + // // 璁剧疆棰嗗 + // setLeader(idx) { + // if (this.updateFlag) { + // this.checkedList.forEach((item, index) => { + // item.leader = index === idx; + // }); + // } + // }, + + // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� + // getUserList(id) { + // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) + // this.$axios.get(`/sccg/depart/query_surplus_exist_user?id=`+id).then((res) => { + // if (res.code === 200) { + // this.userList = res.data; + // } + // }); + // }, + // addUser() { + // this.checkedList = []; + // this.userList.forEach((item) => { + // this.checkedUser.forEach((child) => { + // if (item.id == child) { + // this.checkedList.push({ + // id: item.id, + // username: item.username, + // leader: false, + // }); + // } + // }); + // }); + // this.checkedList[0].leader = true; + // console.log(this.checkedList); + // this.openUser = false; + // }, + // }, + // props: ["userInfo", "updateFlag", "getDepartList", "changeDialog"], + }, + props:['updateFlag'] +}; +</script> +<style lang="scss" scoped> +.updateUser { + border-radius: 1px; + background-color: #09152f; + + main { + // border: 1px solid #fff; + text-align: left; + padding: 0 55px; + background-color: #09152f; + padding-bottom: 50px; + + // .mainTitle { + // color: #4b9bb7; + // font-weight: 600; + // line-height: 100px; + // font-size: 14px; + // } + + .mainContent { + display: flex; + justify-content: center; + padding-top: 50px; + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + justify-content: center; + .btn { + padding: 12px 50px; + } + } + } + } +} + +.updateUser::v-deep .el-form-item__label { + color: #4b9bb7; +} + +.updateUser::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; +} + +.addPerson { + display: flex; + list-style: none; + padding: 0; + flex-wrap: wrap; + max-width: 280px; + + li { + color: #fff; + text-align: center; + font-size: 30px; + margin-left: 10px; + } +} + +.li-icon { + background-color: #cccccc; + width: 36px; + height: 36px; + border-radius: 50%; + margin: 0 auto; +} + +.li-btn { + background-color: #cccccc; + width: 36px; + height: 36px; + border-radius: 50%; +} + +.card { + position: absolute; + z-index: 2000; + right: 0; + + .box-card { + min-height: 240px; + max-height: 260px; + overflow: hidden; + background-color: #09152f; + position: relative; + max-width: 220px; + + .scrollWrap { + overflow: scroll; + height: 180px; + position: relative; + color: #4b9bb7; + + .el-checkbox-group { + display: flex; + flex-direction: column; + + .el-checkbox { + line-height: 20px; + } + } + } + + .myclear { + width: 100%; + line-height: 20px; + color: #4b9bb7; + display: flex; + justify-content: space-between; + } + + .hidebar { + position: absolute; + top: 77px; + right: 20px; + width: 20px; + height: 180px; + background-color: #09152f; + } + + .item { + line-height: 40px; + } + } +} + +.leader { + color: red; +} + +.el-input { + width: 280px !important; +} +</style> \ No newline at end of file diff --git a/src/views/operate/rectification/renovationList/components/createInterface/index.vue b/src/views/operate/rectification/renovationList/components/createInterface/index.vue index 1be774b..5f94365 100644 --- a/src/views/operate/rectification/renovationList/components/createInterface/index.vue +++ b/src/views/operate/rectification/renovationList/components/createInterface/index.vue @@ -5,39 +5,39 @@ <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface" :rules="createmyInterfaceRules" label-position="right"> <!-- 搴旂敤鍚嶇О --> - <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName"> - <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input> + <el-form-item label="浠诲姟缂栧彿:" prop="applicationName"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓浠诲姟缂栧彿"></el-input> </el-form-item> <!-- 搴旂敤鍥炬爣 --> - <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl"> - <div class="iconBox"> - <div class="upload"> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="iconView"> - <span>绀烘剰鍥�</span> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="tip"> - <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span> - </div> - </div> + <el-form-item label="妗堜欢缂栧彿:" prop="applicationIconUrl"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓妗堜欢缂栧彿"></el-input> </el-form-item> <!-- 搴旂敤绫诲瀷 --> - <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType"> - <div class="optionItem"> - <el-radio-group v-model="myInterface.applicationType"> - <el-radio :label="1">缃戦〉搴旂敤</el-radio> - </el-radio-group> - </div> + <el-form-item label="闂绫诲瀷:" prop="applicationType"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓闂绫诲瀷"></el-input> </el-form-item> - <!--缃戠珯url --> - <el-form-item label="缃戠珯url:" prop="websiteUrl"> - <el-input v-model="myInterface.websiteUrl"></el-input> + <!-- 搴旂敤鍚嶇О --> + <el-form-item label="琛楅亾:" prop="applicationName"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓琛楅亾"></el-input> </el-form-item> - <!-- 搴旂敤鎻忚堪 --> - <el-form-item label="搴旂敤鎻忚堪:" prop="description"> - <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input> + <!-- 搴旂敤鍥炬爣 --> + <el-form-item label="绀惧尯:" prop="applicationIconUrl"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓绀惧尯"></el-input> + </el-form-item> + <!-- 搴旂敤绫诲瀷 --> + <el-form-item label="鐩戠潱鍛�:" prop="applicationType"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓鐩戠潱鍛�"></el-input> + </el-form-item> + <!-- 搴旂敤鍥炬爣 --> + <el-form-item label="闂鎻忚堪:" prop="applicationIconUrl"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓闂鎻忚堪"></el-input> + </el-form-item> + <!-- 搴旂敤绫诲瀷 --> + <el-form-item label="涓婃姤鏃堕棿:" prop="applicationType"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓涓婃姤鏃堕棿"></el-input> + </el-form-item> + <el-form-item label="鐘舵��:" prop="applicationType"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓鐘舵��"></el-input> </el-form-item> <!-- 鎸夐挳 --> <el-form-item> @@ -95,7 +95,7 @@ }, createmyInterfaceRules: { applicationName: [ - { required: true, trigger: "blur", validator: validateApplicationName}, + { required: true, trigger: "blur", validator: validateApplicationName }, ], applicationIconUrl: [ { required: true, trigger: "blur", validator: validateApplicationIconUrl }, @@ -119,11 +119,11 @@ handleUser() { const { myInterface } = this; this.$axios.post('sccg/system/portal/thirdApp/add', { - websiteUrl:myInterface.websiteUrl, - applicationIconUrl:myInterface.applicationIconUrl, - applicationType:0, - description:myInterface.description, - applicationName:myInterface.applicationName + websiteUrl: myInterface.websiteUrl, + applicationIconUrl: myInterface.applicationIconUrl, + applicationType: 0, + description: myInterface.description, + applicationName: myInterface.applicationName }).then(res => { console.log(res); // if (res.code === 200) { @@ -145,6 +145,7 @@ padding: 0 55px; background-color: #09152f; padding-bottom: 50px; + .mainContent { display: flex; justify-content: center; @@ -188,16 +189,20 @@ } } } - .optionBtn{ + + .optionBtn { margin-top: 30px; - &::v-deep .el-button{ + + &::v-deep .el-button { padding: 12px 40px; } - .reset{ + + .reset { border: 1px solid #0079fe; color: #0079fe; } } + &::v-deep .el-form-item__label { color: #4b9bb7; } diff --git a/src/views/operate/rectification/renovationList/components/viewInterface/index.vue b/src/views/operate/rectification/renovationList/components/viewInterface/index.vue index 6b28ebb..4292c03 100644 --- a/src/views/operate/rectification/renovationList/components/viewInterface/index.vue +++ b/src/views/operate/rectification/renovationList/components/viewInterface/index.vue @@ -4,40 +4,48 @@ <div class="mainContent"> <el-form ref="user" label-width="140px" autoComplete="on" :model="myInterface" :rules="createmyInterfaceRules" label-position="right"> - <!-- 搴旂敤鍚嶇О --> - <el-form-item label="搴旂敤鍚嶇О:" prop="applicationName"> - <el-input v-model="myInterface.applicationName" placeholder="濉啓搴旂敤鍚嶇О"></el-input> + <!-- 搴旂敤鍚嶇О --> + <el-form-item label="浠诲姟缂栧彿:" prop="applicationName"> + <el-input v-model="myInterface.taskNumber" placeholder="濉啓浠诲姟缂栧彿"></el-input> </el-form-item> <!-- 搴旂敤鍥炬爣 --> - <el-form-item label="搴旂敤鍥炬爣:" prop="applicationIconUrl"> - <div class="iconBox"> - <div class="upload"> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="iconView"> - <span>绀烘剰鍥�</span> - <img src="@/assets/imgs/user/default-avatar.jpg" alt=""> - </div> - <div class="tip"> - <span>鍙厑璁镐笂浼爅pg,jpeg,png,svg鏍煎紡鐨勫浘鐗囷紝寤鸿灏哄涓�105px*105px</span> - </div> - </div> + <el-form-item label="妗堜欢缂栧彿:" prop="applicationIconUrl"> + <el-input v-model="myInterface.caseNumber" placeholder="濉啓妗堜欢缂栧彿"></el-input> + </el-form-item> + <!-- 搴旂敤鍥炬爣 --> + <el-form-item label="澶х被:" prop="applicationIconUrl"> + <el-input v-model="myInterface.bigType" placeholder="濉啓妗堜欢缂栧彿"></el-input> + </el-form-item> + <!-- 搴旂敤鍥炬爣 --> + <el-form-item label="灏忕被:" prop="applicationIconUrl"> + <el-input v-model="myInterface.smallType" placeholder="濉啓妗堜欢缂栧彿"></el-input> </el-form-item> <!-- 搴旂敤绫诲瀷 --> - <el-form-item label="搴旂敤绫诲瀷:" prop="applicationType"> - <div class="optionItem"> - <el-radio-group v-model="myInterface.applicationType"> - <el-radio :label="1">缃戦〉搴旂敤</el-radio> - </el-radio-group> - </div> + <el-form-item label="闂绫诲瀷:" prop="applicationType"> + <el-input v-model="myInterface.questionType" placeholder="濉啓闂绫诲瀷"></el-input> </el-form-item> - <!--缃戠珯url --> - <el-form-item label="缃戠珯url:" prop="websiteUrl"> - <el-input v-model="myInterface.websiteUrl"></el-input> + <!-- 搴旂敤鍚嶇О --> + <el-form-item label="琛楅亾:" prop="applicationName"> + <el-input v-model="myInterface.steert" placeholder="濉啓琛楅亾"></el-input> </el-form-item> - <!-- 搴旂敤鎻忚堪 --> - <el-form-item label="搴旂敤鎻忚堪:" prop="description"> - <el-input v-model="myInterface.description" placeholder="璇峰~鍐欐弿杩�"></el-input> + <!-- 搴旂敤鍥炬爣 --> + <el-form-item label="绀惧尯:" prop="applicationIconUrl"> + <el-input v-model="myInterface.community" placeholder="濉啓绀惧尯"></el-input> + </el-form-item> + <!-- 搴旂敤绫诲瀷 --> + <el-form-item label="鐩戠潱鍛�:" prop="applicationType"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓鐩戠潱鍛�"></el-input> + </el-form-item> + <!-- 搴旂敤鍥炬爣 --> + <el-form-item label="闂鎻忚堪:" prop="applicationIconUrl"> + <el-input v-model="myInterface.description" placeholder="濉啓闂鎻忚堪"></el-input> + </el-form-item> + <!-- 搴旂敤绫诲瀷 --> + <el-form-item label="涓婃姤鏃堕棿:" prop="applicationType"> + <el-input v-model="myInterface.applicationName" placeholder="濉啓涓婃姤鏃堕棿"></el-input> + </el-form-item> + <el-form-item label="鐘舵��:" prop="applicationType"> + <el-input v-model="myInterface.status" placeholder="濉啓鐘舵��"></el-input> </el-form-item> <!-- 鎸夐挳 --> <!-- <el-form-item> @@ -91,8 +99,18 @@ } }; return { - myInterface: { - }, + myInterface:{ + taskNumber:"13413414", + caseNumber:"202233112310310001", + questionType:"杩濊", + bigType:"涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�", + smallType:"杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + steert:"濡欏嘲琛�", + community:"澶ф煒闀�", + description:"杩濊鍋滄斁", + reportTime:"2022-11-1 12:10:10", + status:"涓婃姤" + }, createmyInterfaceRules: { applicationName: [ { required: true, trigger: "blur", validator: validateApplicationName}, @@ -115,7 +133,7 @@ created() { const that = this; const {userInfo} = this; - this.myInterface = JSON.parse(JSON.stringify(userInfo)); + // this.myInterface = JSON.parse(JSON.stringify(userInfo)); }, methods: { }, diff --git a/src/views/operate/rectification/renovationList/index.vue b/src/views/operate/rectification/renovationList/index.vue index a5c515b..8fdf4bb 100644 --- a/src/views/operate/rectification/renovationList/index.vue +++ b/src/views/operate/rectification/renovationList/index.vue @@ -6,7 +6,7 @@ <main> <div class="mainHeader"> <div class="add"> - <el-button type="primary" icon="el-icon-plus">鏂板浠诲姟</el-button> + <el-button type="primary" icon="el-icon-plus" @click="addTask()">鏂板浠诲姟</el-button> </div> <div class="date-search"> <span>鎸夊ぉ鏌ヨ:</span> @@ -30,53 +30,57 @@ <!-- @selection-change="handleSelectionChange" --> <!-- 鏁版嵁娓叉煋 --> <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" - :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" + :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }" :row-class-name="tableRowClassName"> <el-table-column type="selection" width="55"> </el-table-column> - <el-table-column label="浠诲姟缂栧彿" prop="applicationName" min-width="10"> + <el-table-column label="浠诲姟缂栧彿" prop="taskNumber" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="妗堜欢缂栧彿" min-width="10"> + <el-table-column label="妗堜欢缂栧彿" prop="caseNumber" min-width="10"> </el-table-column> - <el-table-column prop="websiteUrl" label="闂绫诲瀷" min-width="10"> + <el-table-column prop="questionType" label="闂绫诲瀷" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="琛楅亾" min-width="10"> + <el-table-column prop="bigType" label="澶х被" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="绀惧尯" min-width="10"> + <el-table-column prop="smallType" label="灏忕被" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="鐩戠潱鍛�" min-width="10"> + <el-table-column prop="steert" label="琛楅亾" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="闂鎻忚堪" min-width="10"> + <el-table-column prop="community" label="绀惧尯" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="涓婃姤鏃堕棿" min-width="10"> + <el-table-column prop="description" label="浠诲姟鎻忚堪" min-width="10"> </el-table-column> - <el-table-column prop="applicationType" label="鐘舵��" min-width="10"> + <el-table-column prop="reportTime" label="涓婃姤鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="manager" label="鐩戠潱鍛�" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鐘舵��" min-width="10"> </el-table-column> <el-table-column label="鎿嶄綔" min-width="10"> <template slot-scope="scope"> <span @click="handleDelete(scope.row)">缂栬緫</span> - <span class="line">|</span> - <span @click="handleDelete(scope.row)">鏌ョ湅</span> + <!-- <span class="line">|</span> + <span @click="(scope.row)">鏌ョ湅</span> --> </template> </el-table-column> </el-table> <!-- 鍒嗛〉 --> - <!-- <div class="pagination"> + <div class="pagination"> <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" @next-click="handleNext"> </el-pagination> - </div> --> + </div> </div> </main> <footer> <!-- 鍒涘缓寮圭獥 --> - <el-dialog :visible.sync="dialogCreate" title="鏂板绗笁鏂规帴鍙�" width="45%" v-if="dialogCreate" + <el-dialog :visible.sync="dialogCreate" title="鏂板鏁存不鍒楄〃" width="45%" v-if="dialogCreate" :before-close="handleClose"> <createInterface /> </el-dialog> <!-- 鏌ョ湅寮圭獥 --> - <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ?'淇敼绗笁鏂规帴鍙�':'鏌ョ湅绗笁鏂规帴鍙�'" width="45%" + <el-dialog :visible.sync="dialogUpdate" :title="updateFlag ? '淇敼绗笁鏂规帴鍙�' : '鏌ョ湅绗笁鏂规帴鍙�'" width="45%" v-if="dialogUpdate" :before-close="handleClose"> <viewInterface :updateFlag="updateFlag" :userInfo=userInfo /> </el-dialog> @@ -92,13 +96,80 @@ }, data() { return { - tableData: [], + totalNum: 5, + pageSize: 10, + tableData: [ + { + taskNumber: "13413414", + caseNumber: "202233112310310001", + questionType: "杩濊", + bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�", + smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + steert: "濡欏嘲琛�", + community: "澶ф煒闀�", + description: "杩濊鍋滄斁", + reportTime: "2022-11-1 12:10:10", + status: "涓婃姤", + manager: "鐜嬫櫒鏅�"}, + { + taskNumber: "13413414", + caseNumber: "202233112310310001", + questionType: "杩濊", + bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�", + smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + steert: "濡欏嘲琛�", + community: "澶ф煒闀�", + description: "杩濊鍋滄斁", + reportTime: "2022-11-1 12:10:10", + status: "涓婃姤", + manager: "鐜嬫櫒鏅�" + }, + { + taskNumber: "13413414", + caseNumber: "202233112310310001", + questionType: "杩濊", + bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�", + smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + steert: "濡欏嘲琛�", + community: "澶ф煒闀�", + description: "杩濊鍋滄斁", + reportTime: "2022-11-1 12:10:10", + status: "涓婃姤", + manager: "鐜嬫櫒鏅�" + }, + { + taskNumber: "13413414", + caseNumber: "202233112310310001", + questionType: "杩濊", + bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�", + smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + steert: "濡欏嘲琛�", + community: "澶ф煒闀�", + description: "杩濊鍋滄斁", + reportTime: "2022-11-1 12:10:10", + status: "涓婃姤", + manager: "鐜嬫櫒鏅�" + }, + { + taskNumber: "13413414", + caseNumber: "202233112310310001", + questionType: "杩濊", + bigType: "涓嶆寜瑙勫畾鍋滄斁褰卞搷鍏朵粬杞﹁締鍜岃浜洪�氳浣嗘湭閫犳垚浜ら�氫簨鏁�", + smallType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", + steert: "濡欏嘲琛�", + community: "澶ф煒闀�", + description: "杩濊鍋滄斁", + reportTime: "2022-11-1 12:10:10", + status: "涓婃姤", + manager: "鐜嬫櫒鏅�" + } + ], search: "", dialogCreate: false, dialogUpdate: false, updateFlag: false, userInfo: '', - date:'', + date: '', // totalNum: 200, // pageSize: 10, // currentPage: 1, @@ -108,6 +179,9 @@ this.getUserList(); }, methods: { + addTask() { + this.dialogCreate = true; + }, // 鑾峰彇鎺ュ彛鍒楄〃 getUserList() { const that = this; @@ -150,14 +224,8 @@ }, // 鍒犻櫎绗笁鏂规帴鍙� handleDelete({ id }) { + this.dialogUpdate=true; console.log(id); - this.$axios.delete('sccg/system/portal/thirdApp/delete', { - params: { - id - } - }).then(res => { - console.log(res); - }) } // // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� // changeCurrentPage(page) { @@ -205,19 +273,26 @@ color: #4b9bb7; background-color: #09152f; display: flex; - .add,.search,.btn{ - flex:1; + + .add, + .search, + .btn { + flex: 1; } - .date-search{ + + .date-search { flex: 3; display: flex; - .mydate{ + + .mydate { display: flex; - .line{ - margin:0 10px 0 20px; + + .line { + margin: 0 10px 0 20px; } } } + .el-input { width: 180px; height: 35px; diff --git a/src/views/operate/viewEvent/components/closure/index.vue b/src/views/operate/viewEvent/components/closure/index.vue new file mode 100644 index 0000000..b61ff2d --- /dev/null +++ b/src/views/operate/viewEvent/components/closure/index.vue @@ -0,0 +1,336 @@ +<template> + <div class="view"> + <div class="view-data"> + <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="100px"> + <div class="data-item"> + <el-form-item label="闂鏉ユ簮:"> + <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span> + </el-form-item> + <el-form-item label="鐧昏浜哄憳:"> + <span class="data-detail">{{baseCase.createUser}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂绫诲瀷:"> + <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> + </el-form-item> + <el-form-item label="浜嬩欢绛夌骇:"> + <span class="data-detail">{{baseCase.violations.gradeText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="澶х被鍚嶇О:"> + <span class="data-detail">{{baseCase.violations.categoryText}}</span> + </el-form-item> + <el-form-item label="灏忕被鍚嶇О:"> + <span class="data-detail">{{baseCase.violations.categoryText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炲尯鍘�:"> + <span class="data-detail"></span> + </el-form-item> + <el-form-item label="鎵�灞炶閬�:"> + <span class="data-detail">{{baseCase.streetText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炵ぞ鍖�:"> + <span class="data-detail">{{baseCase.communityText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬪彂鍦扮偣:"> + <span class="data-detail">{{baseCase.site}}</span> + </el-form-item> + <el-form-item label="杞︾墝鍙�:"> + <span class="data-detail">{{baseCase.violations.carNumber}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鍏宠仈鍟嗛摵鍚嶇О:"> + <span class="data-detail">{{baseCase.violations.shopName}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂鎻忚堪:"> + <span class="data-detail">{{baseCase.violations.description}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鍙嶆槧浜�:"> + <span class="data-detail">{{baseCase.violations.informant}}</span> + </el-form-item> + <el-form-item label="鑱旂郴鏂瑰紡:"> + <span class="data-detail">{{baseCase.violations.informantPhoneCode}}</span> + </el-form-item> + </div> + <!-- 瀹℃牳鎰忚 + <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input> + </el-form-item> + <div class="el-form-footer"> + <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button> + </div> --> + </el-form> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <div class="closure-info" v-if="activeIndex === 0"> + <el-form :model="baseCase" label-position="right" ref="opinionForm" :rules="Rules" + label-width="100px"> + <el-form-item label="瀹℃牳鎰忚" class="op-item" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion" disabled> + </el-input> + </el-form-item> + <el-form-item label="缁撴鎰忚" class="op-item" prop="finalOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ョ粨妗堟剰瑙�" v-model="baseCase.finalOpinion"> + </el-input> + </el-form-item> + </el-form> + <div class="form-footer"> + <el-button type="primary" @click.native.prevent="handleSubmit">缁撴</el-button> + <el-button @click.native.prevent="handleBack">杩斿洖</el-button> + </div> + </div> + <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem> + <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from '@/components/process' +import MyFilePicture from '@/components/filePictrue' +import MySovleProblem from '@/components/solveProblem' +import MyScene from '@/components/scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + const checkOpinion = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback() + } + } + const checkFinal = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('缁撴鎰忚涓嶈兘涓虹┖')) + } + } + return { + myInfo: { + + }, + activeIndex: 0, + titleList: [ + { + title: '缁撴淇℃伅', + index: 0, + }, + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ], + Rules: { + auditOpinion: [ + { trigger: 'blur', validator: checkOpinion } + ], + finalOpinion:[ + { + trigger:'blur',validator:checkFinal + } + ] + + }, + baseCase: {}, + handlePassVo: {}, + currentSitVo: {}, + problemProVo: {}, + filesPictureVo: {} + + } + }, + created() { + const { info } = this; + this.baseCase = info.baseCase; + this.handlePassVo = info.handlePassVo; + this.currentSitVo = info.currentSitVo; + this.problemProVo = info.problemProVo; + this.filesPictureVo = info.filesPictureVo; + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + }, + handleBack(){ + this.$emit('closeDialog', { flag: false }); + }, + // 鎻愪氦瀹℃牳鎰忚 + handleSubmit() { + const { baseCase } = this; + this.$refs.opinionForm.validate((valid) => { + if (valid) { + this.$axios({ + method: 'put', + url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&opinion='+baseCase.finalOpinion +'&result='+'缁撴鎴愬姛', + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: '缁撴鎴愬姛' + }) + this.$emit('closeDialog', { flag: false }); + }else{ + this.$message({ + type:'error', + message:'缁撴澶辫触', + }) + } + + }) + .catch(err => { console.log(err) }); + } else { + return false; + } + }) + }, + // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅 + getUserLoginInfo() { + // 鑾峰彇鐧诲綍鍚�; + const username = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info', + data: { + name: 'username' + } + }) + .then(res => { + console.log(res); + }) + } + }, + props: ['info', 'closeDialog'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + :deep(.el-form-item__label) { + color: #4b9bb7; + } + + :deep(.el-textarea__inner) { + background-color: #17324c; + color: #4b9bb7; + } + + .el-form-footer { + display: flex; + justify-content: flex-end; + } + + border: 1px solid #17324c; + } + :deep(.el-textarea__inner){ + background-color: #17324c; + color: #4b9bb7; + } + .closure-info{ + padding: 20px; + .op-item{ + padding-top: 20px; + } + .form-footer{ + display: flex; + margin-top: 50px; + justify-content: flex-end; + } + } + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + + .show-wrap { + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/viewEvent/components/examine/index.vue b/src/views/operate/viewEvent/components/examine/index.vue new file mode 100644 index 0000000..483743f --- /dev/null +++ b/src/views/operate/viewEvent/components/examine/index.vue @@ -0,0 +1,283 @@ +<template> + <div class="view"> + <div class="view-data"> + <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="100px"> + <div class="data-item"> + <el-form-item label="闂鏉ユ簮:"> + <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span> + </el-form-item> + <el-form-item label="鐧昏浜哄憳:"> + <span class="data-detail">{{baseCase.createUser}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂绫诲瀷:"> + <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> + </el-form-item> + <el-form-item label="澶х被鍚嶇О:"> + <span class="data-detail">{{baseCase.violations.categoryText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="灏忕被鍚嶇О:"> + <span class="data-detail">{{baseCase.violations.typeText}}</span> + </el-form-item> + <el-form-item label="浜嬩欢绛夌骇:"> + <span class="data-detail">{{baseCase.violations.gradeText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="妗堢敱:"> + <span class="data-detail">{{baseCase.violations.actionCause}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炲尯鍘�:"> + <span class="data-detail">xxxx</span> + </el-form-item> + <el-form-item label="鎵�灞炶閬�:"> + <span class="data-detail">{{baseCase.streetText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炵ぞ鍖�:"> + <span class="data-detail">{{baseCase.communityText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬪彂鍦扮偣:"> + <span class="data-detail">{{baseCase.site}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂鎻忚堪:"> + <span class="data-detail">{{baseCase.violations.description}}</span> + </el-form-item> + </div> + <!-- <div class="data-item"> + <el-form-item label="澶勭疆鏂瑰紡:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="澶勭疆鎵嬫:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div>--> + <!-- 瀹℃牳鎰忚 --> + <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input> + </el-form-item> + <div class="el-form-footer"> + <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button> + </div> + </el-form> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem> + <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from '@/components/process' +import MyFilePicture from '@/components/filePictrue' +import MySovleProblem from '@/components/solveProblem' +import MyScene from '@/components/scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + const checkOpinion = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('瀹℃牳鎰忚涓嶈兘涓虹┖')) + } + } + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ], + Rules: { + auditOpinion: [ + { required: true, trigger: 'blur', validator: checkOpinion } + ] + }, + baseCase: {}, + handlePassVo: {}, + currentSitVo: {}, + problemProVo: {}, + filesPictureVo: {}, + } + }, + created() { + const { info} = this; + this.baseCase = info.baseCase; + this.handlePassVo = info.handlePassVo; + this.currentSitVo = info.currentSitVo; + this.problemProVo = info.problemProVo; + this.filesPictureVo = info.filesPictureVo; + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + }, + // 鎻愪氦瀹℃牳鎰忚 + handleSubmit(index) { + const { baseCase } = this; + this.$refs.viewForm.validate((valid) => { + if (valid) { + this.$axios({ + method: 'post', + url: 'sccg/check_handle/check', + data: { + baseCaseId: baseCase.id, + checkOpinion: baseCase.auditOpinion, + result:index === 0 ? '椹冲洖':'閫氳繃', + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: index === 0 ? '椹冲洖鎴愬姛' : '瀹℃牳閫氳繃' + }) + this.$emit('closeDialog', { flag: false }); + } + + }) + .catch(err => { console.log(err) }); + }else{ + return false; + } + }) + }, + // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅 + getUserLoginInfo() { + // 鑾峰彇鐧诲綍鍚�; + const username = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info', + data: { + name: 'username' + } + }) + .then(res => { + console.log(res); + }) + }, + }, + props: ['info', 'closeDialog'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + :deep(.el-form-item__label) { + color: #4b9bb7; + } + + :deep(.el-textarea__inner) { + background-color: #17324c; + color: #4b9bb7; + } + + .el-form-footer { + display: flex; + justify-content: flex-end; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + + .show-wrap { + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/viewEvent/components/illExamine/index.vue b/src/views/operate/viewEvent/components/illExamine/index.vue new file mode 100644 index 0000000..1dfd4a4 --- /dev/null +++ b/src/views/operate/viewEvent/components/illExamine/index.vue @@ -0,0 +1,284 @@ +<template> + <div class="view"> + <div class="view-data"> + <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px"> + <div class="data-item"> + <el-form-item label="闂鏉ユ簮:"> + <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span> + </el-form-item> + <el-form-item label="鐧昏浜哄憳:"> + <span class="data-detail">{{baseCase.createUser}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂绫诲瀷:"> + <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> + </el-form-item> + <el-form-item label="杩濆缓绫诲埆:"> + <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬩欢绛夌骇:"> + <span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="妗堢敱:"> + <span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="杩濇硶寤鸿闀裤�佸銆侀珮:"> + <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m銆�'+baseCase.illegalBuilding.buildingWidth+'m銆�'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="杩濇硶寤鸿闈㈢Н:"> + <span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'銕� '}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炵ぞ鍖�:"> + <span class="data-detail">{{baseCase.communityText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬪彂鍦扮偣:"> + <span class="data-detail">{{baseCase.site}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂鎻忚堪:"> + <span class="data-detail">{{baseCase.illegalBuilding.description}}</span> + </el-form-item> + </div> + <!-- <div class="data-item"> + <el-form-item label="澶勭疆鏂瑰紡:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="澶勭疆鎵嬫:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> --> + <!-- 瀹℃牳鎰忚 --> + <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input> + </el-form-item> + <div class="el-form-footer"> + <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button> + </div> + </el-form> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <MyProcess v-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :filesPictureVo="filesPictureVo" ></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem> + <MyScene v-else :currentSitVo="currentSitVo" :baseCase="baseCase"></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from '@/components/process' +import MyFilePicture from '@/components/filePictrue' +import MySovleProblem from '@/components/solveProblem' +import MyScene from '@/components/scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + const checkOpinion = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('瀹℃牳鎰忚涓嶈兘涓虹┖')) + } + } + return { + myInfo: { + + }, + activeIndex: 1, + titleList: [ + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ], + Rules: { + auditOpinion: [ + { required: true, trigger: 'blur', validator: checkOpinion } + ] + }, + baseCase: {}, + handlePassVo: {}, + currentSitVo: {}, + problemProVo: {}, + filesPictureVo: {}, + } + }, + created() { + const { info } = this; + this.baseCase = info.baseCase; + this.handlePassVo = info.handlePassVo; + this.currentSitVo = info.currentSitVo; + this.problemProVo = info.problemProVo; + this.filesPictureVo = info.filesPictureVo; + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + }, + // 鎻愪氦瀹℃牳鎰忚 + handleSubmit(mystatus) { + // this.getUserLoginInfo(); + const { baseCase } = this; + this.$refs.viewForm.validate((valid) => { + if (valid) { + this.$axios({ + method: 'post', + url: 'sccg/check_handle/check', + data: { + baseCaseId: baseCase.id, + checkOpinion: baseCase.auditOpinion, + currentUser: baseCase.createUser, + status: mystatus, + } + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: mystatus === 0 ? '椹冲洖鎴愬姛' : '瀹℃牳閫氳繃' + }) + this.$emit('closeDialog', { flag: false }); + } + + }) + .catch(err => { console.log(err) }); + }else{ + return false; + } + }) + }, + // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅 + getUserLoginInfo() { + // 鑾峰彇鐧诲綍鍚�; + const username = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info', + data: { + name: 'username' + } + }) + .then(res => { + console.log(res); + }) + }, + }, + props: ['info', 'closeDialog'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + :deep(.el-form-item__label) { + color: #4b9bb7; + } + + :deep(.el-textarea__inner) { + background-color: #17324c; + color: #4b9bb7; + } + + .el-form-footer { + display: flex; + justify-content: flex-end; + } + + border: 1px solid #17324c; + } + + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + + .show-wrap { + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/viewEvent/components/illclosure/index.vue b/src/views/operate/viewEvent/components/illclosure/index.vue new file mode 100644 index 0000000..513b04b --- /dev/null +++ b/src/views/operate/viewEvent/components/illclosure/index.vue @@ -0,0 +1,334 @@ +<template> + <div class="view"> + <div class="view-data"> + <el-form :model="baseCase" label-position="right" ref="viewForm" :rules="Rules" label-width="160px"> + <div class="data-item"> + <el-form-item label="闂鏉ユ簮:"> + <span class="data-detail">{{baseCase.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛宸℃煡'}}</span> + </el-form-item> + <el-form-item label="鐧昏浜哄憳:"> + <span class="data-detail">{{baseCase.createUser}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂绫诲瀷:"> + <span class="data-detail">{{baseCase.category === 1 ? '杩濊' : '杩濆缓'}}</span> + </el-form-item> + <el-form-item label="杩濆缓绫诲埆:"> + <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬩欢绛夌骇:"> + <span class="data-detail">{{baseCase.illegalBuilding.baseCaseId}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="妗堢敱:"> + <span class="data-detail">{{baseCase.illegalBuilding.actionCause}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="杩濇硶寤鸿闀裤�佸銆侀珮:"> + <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m銆�'+baseCase.illegalBuilding.buildingWidth+'m銆�'+ baseCase.illegalBuilding.buildingHigh + 'm '}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="杩濇硶寤鸿闈㈢Н:"> + <span class="data-detail">{{baseCase.illegalBuilding.buildingArea+'銕� '}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="鎵�灞炵ぞ鍖�:"> + <span class="data-detail">{{baseCase.communityText}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="浜嬪彂鍦扮偣:"> + <span class="data-detail">{{baseCase.site}}</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="闂鎻忚堪:"> + <span class="data-detail">{{baseCase.illegalBuilding.description}}</span> + </el-form-item> + </div> + <!-- <div class="data-item"> + <el-form-item label="澶勭疆鏂瑰紡:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> + <div class="data-item"> + <el-form-item label="澶勭疆鎵嬫:"> + <span class="data-detail">xxxxxxx</span> + </el-form-item> + </div> --> + <!-- 瀹℃牳鎰忚 --> + <el-form-item label="瀹℃牳鎰忚" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion"></el-input> + </el-form-item> + <div class="el-form-footer"> + <el-button @click.native.prevent="handleSubmit(0)">椹冲洖</el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)">閫氳繃</el-button> + </div> + </el-form> + </div> + <div class="view-process"> + <div class="process-header"> + <div class="process-title-item" v-for="item in titleList" :key="item.title" + @click="changeComponent(item.index)"> + <div :class="['process-title',activeIndex===item.index ? 'title-active' : '' ]">{{item.title}}</div> + <div :class="['under-line',activeIndex===item.index ? 'line-active' : '' ]"></div> + </div> + </div> + <div class="show-item"> + <div class="show-wrap"> + <div class="closure-info" v-if="activeIndex === 0"> + <el-form :model="baseCase" label-position="right" ref="opinionForm" :rules="Rules" + label-width="100px"> + <el-form-item label="瀹℃牳鎰忚" class="op-item" prop="auditOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ鏍告剰瑙�" v-model="baseCase.auditOpinion" disabled> + </el-input> + </el-form-item> + <el-form-item label="缁撴鎰忚" class="op-item" prop="finalOpinion"> + <el-input type="textarea" placeholder="璇疯緭鍏ョ粨妗堟剰瑙�" v-model="baseCase.finalOpinion"> + </el-input> + </el-form-item> + </el-form> + <div class="form-footer"> + <el-button type="primary" @click.native.prevent="handleSubmit">缁撴</el-button> + <el-button @click.native.prevent="handleBack">杩斿洖</el-button> + </div> + </div> + <MyProcess v-else-if="activeIndex === 1" :handlePassVo="handlePassVo" :baseCase="baseCase"></MyProcess> + <MyFilePicture v-else-if="activeIndex === 2" :baseCase="baseCase" :filesPictureVo="filesPictureVo"></MyFilePicture> + <MySovleProblem v-else-if="activeIndex === 3" :handlePassVo="handlePassVo" :baseCase="baseCase"></MySovleProblem> + <MyScene v-else :baseCase="baseCase" :currentSitVo="currentSitVo"></MyScene> + </div> + </div> + </div> + </div> +</template> +<script> +import MyProcess from '@/components/process' +import MyFilePicture from '@/components/filePictrue' +import MySovleProblem from '@/components/solveProblem' +import MyScene from '@/components/scene' +export default { + components: { + MyProcess, MyFilePicture, MySovleProblem, MyScene + }, + data() { + const checkOpinion = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback() + } + } + const checkFinal = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('缁撴鎰忚涓嶈兘涓虹┖')) + } + } + return { + myInfo: { + + }, + activeIndex: 0, + titleList: [ + { + title: '缁撴淇℃伅', + index: 0, + }, + { + title: '鍔炵悊缁忚繃', + index: 1, + }, + { + title: '妗堝嵎鍥剧墖', + index: 2, + }, + { + title: '闂澶勭悊', + index: 3, + }, + { + title: '鐜板満鎯呭喌', + index: 4, + }, + ], + Rules: { + auditOpinion: [ + { trigger: 'blur', validator: checkOpinion } + ], + finalOpinion:[ + { + trigger:'blur',validator:checkFinal + } + ] + + }, + baseCase: {}, + handlePassVo: {}, + currentSitVo: {}, + problemProVo: {}, + filesPictureVo: {} + + } + }, + created() { + const { info } = this; + this.baseCase = info.baseCase; + this.handlePassVo = info.handlePassVo; + this.currentSitVo = info.currentSitVo; + this.problemProVo = info.problemProVo; + this.filesPictureVo = info.filesPictureVo; + }, + methods: { + changeComponent(index) { + this.activeIndex = index; + }, + handleBack(){ + this.$emit('closeDialog', { flag: false }); + }, + // 鎻愪氦瀹℃牳鎰忚 + handleSubmit() { + const { baseCase } = this; + this.$refs.opinionForm.validate((valid) => { + if (valid) { + this.$axios({ + method: 'put', + url: 'sccg/base_case/end_case?caseId='+baseCase.id +'&opinion='+baseCase.finalOpinion+'&result='+'缁撴鎴愬姛' , + }) + .then(res => { + console.log(res); + if (res.code === 200) { + this.$message({ + type: 'success', + message: '缁撴鎴愬姛' + }) + this.$emit('closeDialog', { flag: false }); + }else{ + this.$message({ + type:'error', + message:'缁撴澶辫触', + }) + } + + }) + .catch(err => { console.log(err) }); + } else { + return false; + } + }) + }, + // 鑾峰彇褰撳墠鐢ㄦ埛鐧诲綍淇℃伅 + getUserLoginInfo() { + // 鑾峰彇鐧诲綍鍚�; + const username = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info', + data: { + name: 'username' + } + }) + .then(res => { + console.log(res); + }) + } + }, + props: ['info', 'closeDialog'] +} +</script> +<style lang="scss" scoped> +.view { + display: flex; + padding: 20px; + + .view-data { + color: #4b9bb7; + flex: 4; + padding: 20px; + + .data-item { + display: flex; + justify-content: space-between; + line-height: 40px; + } + + :deep(.el-form-item__label) { + color: #4b9bb7; + } + + :deep(.el-textarea__inner) { + background-color: #17324c; + color: #4b9bb7; + } + + .el-form-footer { + display: flex; + justify-content: flex-end; + } + + border: 1px solid #17324c; + } + :deep(.el-textarea__inner){ + background-color: #17324c; + color: #4b9bb7; + } + .closure-info{ + padding: 20px; + .op-item{ + padding-top: 20px; + } + .form-footer{ + display: flex; + margin-top: 50px; + justify-content: flex-end; + } + } + .view-process { + flex: 6; + margin-left: 20px; + + .process-header { + display: flex; + line-height: 40px; + + .process-title-item { + width: 120px; + text-align: center; + + .under-line { + height: 2px; + width: 100%; + } + + .title-active { + color: #4b9bb7; + } + + .line-active { + background-color: #4b9bb7; + border-radius: 20px; + } + } + } + + .show-item { + overflow: hidden; + height: 600px; + position: relative; + + .show-wrap { + overflow: scroll; + height: 600px; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/operate/viewEvent/index.vue b/src/views/operate/viewEvent/index.vue new file mode 100644 index 0000000..76194d5 --- /dev/null +++ b/src/views/operate/viewEvent/index.vue @@ -0,0 +1,630 @@ +<template> + <div class="userList"> + <header> + <div class="headerTitle">杩愯惀绠$悊 >> 妗堝嵎鏌ヨ</div> + <div class="headerContent"> + <div class="contentItem"> + <span>鎸夌紪鍙�: </span> + <div> + <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.code"></el-input> + </div> + </div> + <div class="contentItem"> + <span>鎸夌被鍨�: </span> + <div class="search"> + <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.type"></el-input> + </div> + </div> + <div class="contentItem"> + <span>鎸夌ぞ鍖�: </span> + <div class="search"> + <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.community"></el-input> + </div> + </div> + <div class="contentItem"> + <span>鎸変簨鍙戝湴鐐�: </span> + <div class="search"> + <el-input placeholder=" 璇疯緭鍏ョ紪鍙�" v-model="info.site"></el-input> + </div> + </div> + <div class="date-search contentItem"> + <!-- <span>鎸夌被鍨�:</span> + <div class="search"> + <el-input placeholder="璇疯緭鍏ョ紪鍙�"></el-input> + </div> --> + <div class="btn"> + <el-button icon="el-icon-plus" type="primary">鎼滅储</el-button> + <!-- <el-button icon="el-icon-delete">閲嶇疆</el-button> --> + </div> + </div> + </div> + <div class="headerContent"> + <span>鏃堕棿: </span> + <div> + <el-input placeholder=" 璇疯緭鍏ュ紑濮嬫椂闂�" v-model="info.startTime"></el-input> + </div> + <div class="line"> + -- + </div> + <div> + <el-input placeholder=" 璇疯緭鍏ョ粨鏉熸椂闂�" v-model="info.endTime"></el-input> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="18"> + <template slot-scope="scope"> + <el-link @click="JumpView(scope.row)">{{ scope.row.code }}</el-link> + </template> + </el-table-column> + <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="8"> + <template slot-scope="scope"> + <span>{{ scope.row.eventSource === 2 ? '浜哄伐涓婃姤' : '瑙嗛涓婁紶' }}</span> + </template> + </el-table-column> + <el-table-column :prop="myproblem === 1 ? 'category' : 'category'" + :label="myproblem === 1 ? '澶х被鍚嶇О' : '杩濆缓绫诲埆'" :min-width="myproblem === 1 ? '10' : '20'"> + </el-table-column> + <el-table-column :prop="myproblem === 1 ? 'type' : 'site'" + :label="myproblem === 1 ? '灏忕被鍚嶇О' : '杩濆缓鍦扮偣'" min-width="10"> + </el-table-column> + <el-table-column :prop="myproblem === 1 ? 'actionCause' : 'communityId'" + :label="myproblem === 1 ? '妗堢敱' : '鎵�灞炵ぞ鍖�'" min-width="10"> + </el-table-column> + <el-table-column :prop="myproblem === 1 ? 'site' : ''" + :label="myproblem === 1 ? '鎶ヨ鐐逛綅' : '杩濇硶寤虹瓚闀裤�佸銆侀珮'" :min-width="myproblem === 1 ? '10' : '20'"> + <template slot-scope="scope"> + <div v-if="myproblem === 2"><span>{{ scope.row.buildingLength + '绫�' + '銆�' + + scope.row.buildingWidth + '绫�' + '銆�' + scope.row.buildingHigh + '绫�' + }}</span></div> + <div v-else>{{ scope.row.site }}</div> + </template> + </el-table-column> + <el-table-column :prop="myproblem === 1 ? 'street' : 'buildingArea'" + :label="myproblem === 1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15" v-if="myproblem === 1"> + <template slot-scope="scope"> + <span>{{ filterTime(scope.row.alarmTime) }}</span> + </template> + </el-table-column> + <el-table-column :prop="myproblem === 1 ? 'continueTime' : 'materials'" + :label="myproblem === 1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="15"> + </el-table-column> + <!-- <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="btn"> + <!-- v-if="instatus===7 ? true : false" --> + <!-- <span @click="handleExamine(scope.row)" v-if="instatus===7">瀹℃牳</span> + <span @click="handleClosure(scope.row)" v-if="instatus===8">缁撴</span> + <span class="line" v-if="instatus !==9">|</span> + <span @click="JumpView(scope.row)">鏌ョ湅</span> + </div> + </template> + </el-table-column> --> + </el-table> + <!-- 瀹℃牳椤甸潰 --> + <el-dialog :visible.sync="dialogExamine" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogExamine" + :before-close="handleClose"> + <MyExamine :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyExamine> + <MyIllExamine :info="info" v-else @closeDialog="closeDialog"></MyIllExamine> + </el-dialog> + <!-- 缁撴椤甸潰 --> + <el-dialog :visible.sync="dialogClosure" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogClosure" + :before-close="handleClose"> + <MyClosure :info="info" v-if="myproblem === 1" @closeDialog="closeDialog"></MyClosure> + <MyIllClosure :info="info" v-else @closeDialog="closeDialog"></MyIllClosure> + </el-dialog> + <!-- 璇︽儏椤甸潰 --> + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" + :before-close="handleNoClose"> + <MyDetail :info=info v-if="myproblem == 1 ? true : false" :mycode='code'></MyDetail> + <MyIllDetail :info=info v-else :mycode="code"></MyIllDetail> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" + @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyExamine from './components/examine' +import MyClosure from './components/closure' +import MyIllExamine from './components/illExamine' +import MyIllClosure from './components/illclosure' +import MyDetail from '@/components/detail' +import MyIllDetail from '@/components/illdetail' +import helper from '@/utils/mydate' +export default { + components: { + MyExamine, MyClosure, MyDetail, MyIllDetail, MyIllExamine, MyIllClosure + }, + data() { + return { + tableData: [], + dialogExamine: false, + dialogClosure: false, + dialogView: false, + info: {}, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + { + value: 1, + label: '鎵归噺鍚敤', + }, + { + value: 2, + label: '鎵归噺绂佺敤', + }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + typeList: [ + { + name: '杩濊', + value: 1, + checked: true + }, + { + name: '杩濆缓', + value: 2, + checked: false, + }, + ], + caseId: '', + myproblem: 1, + instatus: 7, + code: '' + } + }, + created() { + this.getUserList(); + }, + methods: { + // 鎵归噺鍒犻櫎 + mulDelete(idArr) { + console.log(idArr); + this.$axios({ + method: 'delete', + url: 'sccg/violations/batch_delete?ids=' + idArr, + }).then(res => { + this.getUserList(); + this.$message({ + message: res.message, + type: res.code === 200 ? 'success' : 'warning' + }) + }) + }, + // 鎵ц涓嬫媺妗嗘搷浣� + selectChange(list) { + console.log(this.tempList); + if (this.tempList.length !== 0) { + if (list === 3) { + this.preMyIdx = list; + this.mulDelete(this.tempList); + } + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + // 鐩戝惉琛ㄦ牸 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.code); + }) + if (list.length === this.tableData.length) { + this.all = true; + } else { + this.all = false + } + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 鍒犻櫎鍗曟潯鏁版嵁 + handleDelete({ number }) { + console.log(number); + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + console.log(1); + this.$axios({ + method: 'delete', + url: `sccg/violations/delete?id=${number}`, + }) + .then(res => { + console.log(res); + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => { console.log(2) }); + }, + // 鑾峰彇鐢ㄦ埛鍒楄〃 + getUserList() { + const { currentPage, pageSize, instatus, myproblem } = this; + this.$axios({ + method: 'get', + url: `sccg/base_case/query?state=${instatus}¤t=${currentPage}&size=${pageSize}&resource=2&type=${myproblem}` + }).then(res => { + this.totalNum = res.data.total; + this.tableData = res.data.records; + }) + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + this.currentPage = page; + this.getUserList(); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + this.currentPage = page; + this.getUserList(); + }, + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogExamine = false; + done(); + }) + .catch(_ => { }); + }, + handleNoClose(done) { + done(); + }, + async JumpView(data) { + this.code = data.code + await this.getEventInfo(data.code); + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo(code) { + this.$axios({ + method: 'get', + url: `sccg/base_case/baseCaseDetail/${code}` + }) + .then(res => { + console.log(res); + this.info = res.data; + this.dialogView = true; + }) + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo3(code) { + this.$axios({ + method: 'get', + url: `sccg/base_case/baseCaseDetail/${code}` + }) + .then(res => { + console.log(res); + this.info = res.data; + this.dialogExamine = true; + }) + }, + // 鑾峰彇妗堜欢淇℃伅 + getEventInfo2(code) { + this.$axios({ + method: 'get', + url: `sccg/base_case/baseCaseDetail/${code}` + }) + .then(res => { + console.log(res); + this.info = res.data; + this.dialogClosure = true; + }) + }, + // 鍘诲鏍� + handleExamine({ code }) { + this.getEventInfo3(code); + }, + // 鍘荤粨妗� + handleClosure({ code }) { + this.getEventInfo2(code); + }, + // 鍏抽棴dialog + closeDialog({ flag }) { + this.dialogExamine = flag; + this.dialogClosure = flag; + this.getUserList(); + }, + // 闂绫诲瀷 + changeMyProblem(val) { + this.getUserList(); + }, + // 瀹℃牳鐘舵�� + changeInStatus(val) { + this.getUserList(); + }, + filterTime(time) { + return helper(time); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + display: flex; + line-height: 60px; + flex-direction: column; + // justify-content: space-between; + padding: 0 20px; + color: #4b9bb7; + + .headerContent { + display: flex; + + .contentItem { + display: flex; + margin-right: 5%; + } + + .mydate { + flex: 1; + } + } + + &::v-deep .el-button { + background-color: #eb5d01; + border: none; + color: #fff; + border-radius: 20px; + } + } + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; + + .btn span:hover { + cursor: pointer; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } + + &::v-deep .active { + background-color: #409eff; + color: #fff; + } + } + } + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .cell { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + &::v-deep .el-table__empty-block { + background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + background: #06122c; + } + + .el-table::v-deep .success-row { + background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + .line { + padding: 0 5px; + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #4b9bb7; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } + + &::v-deep .el-dialog__body { + padding: 0; + } +} +</style> \ No newline at end of file -- Gitblit v1.8.0