| | |
| | | <template> |
| | | <basic-container> |
| | | <basic-container class="activitys"> |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @row-click="rowClick" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | @row-click="rowClick" |
| | | > |
| | | <!-- @row-click="rowClick" --> |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | type="danger" |
| | | v-show="true" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template slot="menuLeft"> |
| | | <!-- <template slot="menuLeft"> |
| | | <el-button |
| | | v-bind:class="activeClass == 0 ? 'btn-color' : ''" |
| | | size="mini" |
| | |
| | | @click="getQBdata(3)" |
| | | >全部 |
| | | </el-button> |
| | | </template> |
| | | </template> --> |
| | | |
| | | <template slot="menuLeft"> |
| | | <!-- <template slot="menuLeft"> |
| | | <el-button |
| | | type="warning" |
| | | size="mini" |
| | |
| | | @click="handleExportStatis" |
| | | >导出报表 |
| | | </el-button> |
| | | </template> |
| | | </template> --> |
| | | |
| | | <template slot-scope="{ row }" slot="jtype"> |
| | | <el-tag |
| | |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "任务标题", |
| | | label: "巡查标题", |
| | | prop: "rname", |
| | | search: false, |
| | | searchSpan: 3, |
| | | search: true, |
| | | searchSpan: 4, |
| | | span: 12, |
| | | rules: [ |
| | | { |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: "任务封面", |
| | | label: "开始时间", |
| | | type: "datetime", |
| | | prop: "time", |
| | | width: 160, |
| | | addDisplay: false, |
| | | viewDisplay: false, |
| | | editDisplay: false, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | },{ |
| | | label: "结束时间", |
| | | type: "datetime", |
| | | prop: "endtime", |
| | | width: 160, |
| | | addDisplay: false, |
| | | viewDisplay: false, |
| | | editDisplay: false, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | }, |
| | | { |
| | | label: "开始时间", |
| | | type: 'datetimerange', |
| | | hide: true, |
| | | prop: "timeList", |
| | | width: 160, |
| | | span: 12, |
| | | startPlaceholder: '任务开始时间', |
| | | endPlaceholder: '预估结束时间', |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择时间范围", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "封面", |
| | | prop: "url", |
| | | // align:'center', |
| | | width: 80, |
| | |
| | | url: "link", |
| | | }, |
| | | // hide: true, |
| | | span: 12, |
| | | }, |
| | | { |
| | | label: "下发时间", |
| | | type: "datetime", |
| | | prop: "time", |
| | | width: 160, |
| | | span: 12, |
| | | format: "yyyy-MM-dd HH:mm:ss", |
| | | valueFormat: "yyyy-MM-dd HH:mm:ss", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择报警时间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | span: 24, |
| | | }, |
| | | // { |
| | | // label: "报警时间", |
| | |
| | | // ], |
| | | // }, |
| | | { |
| | | label: "任务内容", |
| | | label: "巡查内容", |
| | | prop: "content", |
| | | span: 24, |
| | | }, |
| | |
| | | // span: 5, |
| | | // }, |
| | | { |
| | | label: "省份", |
| | | prop: "province", |
| | | label: "所属辖区", |
| | | prop: "jurisdiction", |
| | | searchLabelWidth: 80, |
| | | search: true, |
| | | width: 100, |
| | | searchSpan: 2, |
| | | searchLabelWidth: 45, |
| | | placeholder: "省份", |
| | | type: "select", |
| | | value: "36", |
| | | searchSpan: 4, |
| | | overHidden: true, |
| | | parent: false, |
| | | type: "tree", |
| | | dicUrl: "/api/jurisdiction/lazy-tree", |
| | | props: { |
| | | label: "name", |
| | | value: "code", |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | cascaderItem: ["city", "district"], |
| | | dicUrl: "/api/blade-system/region/select", |
| | | span: 6, |
| | | className: "cityreal1", |
| | | addDisplay: true, |
| | | editDisplay: true, |
| | | viewDisplay: true, |
| | | checkStrictly: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属辖区", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "省份", |
| | | // hide: true, |
| | | // prop: "province", |
| | | // // search: true, |
| | | // width: 100, |
| | | // searchSpan: 2, |
| | | // searchLabelWidth: 45, |
| | | // placeholder: "省份", |
| | | // type: "select", |
| | | // value: "36", |
| | | // props: { |
| | | // label: "name", |
| | | // value: "code", |
| | | // }, |
| | | // cascaderItem: ["city", "district"], |
| | | // dicUrl: "/api/blade-system/region/select", |
| | | // span: 6, |
| | | // className: "cityreal1", |
| | | // addDisplay: true, |
| | | // editDisplay: true, |
| | | // viewDisplay: true, |
| | | // }, |
| | | // { |
| | | // label: "地市", |
| | | // hide: true, |
| | | // prop: "city", |
| | | // type: "select", |
| | | // width: 100, |
| | | // searchPlaceholder: "地市", |
| | | // placeholder: "地市", |
| | | // searchLabelWidth: 1, |
| | | // value: "3601", |
| | | // searchSpan: 2, |
| | | // // search: true, |
| | | // props: { |
| | | // label: "name", |
| | | // value: "code", |
| | | // }, |
| | | // dicUrl: "/api/blade-system/region/select?code={{key}}", |
| | | // span: 3, |
| | | // labelWidth: "0", |
| | | // className: "cityreal2", |
| | | // addDisplay: true, |
| | | // editDisplay: true, |
| | | // viewDisplay: true, |
| | | // }, |
| | | // { |
| | | // label: "区县", |
| | | // hide: true, |
| | | // searchSpan: 2, |
| | | // searchLabelWidth: 1, |
| | | // width: 100, |
| | | // searchPlaceholder: "区县", |
| | | // placeholder: "区县", |
| | | // // search: true, |
| | | // prop: "district", |
| | | // type: "select", |
| | | // props: { |
| | | // label: "name", |
| | | // value: "code", |
| | | // }, |
| | | // dicUrl: "/api/blade-system/region/select?code={{key}}", |
| | | // span: 3, |
| | | // labelWidth: "0", |
| | | // className: "cityreal3", |
| | | // addDisplay: true, |
| | | // editDisplay: true, |
| | | // viewDisplay: true, |
| | | // }, |
| | | { |
| | | label: "集合点", |
| | | prop: "gathername", |
| | | labelWidth: 100, |
| | | span: 9, |
| | | overHidden: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择地址", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "地市", |
| | | prop: "city", |
| | | type: "select", |
| | | width: 100, |
| | | searchPlaceholder: "地市", |
| | | placeholder: "地市", |
| | | searchLabelWidth: 1, |
| | | value: "3601", |
| | | searchSpan: 2, |
| | | search: true, |
| | | props: { |
| | | label: "name", |
| | | value: "code", |
| | | }, |
| | | dicUrl: "/api/blade-system/region/select?code={{key}}", |
| | | span: 3, |
| | | labelWidth: "0", |
| | | className: "cityreal2", |
| | | addDisplay: true, |
| | | editDisplay: true, |
| | | viewDisplay: true, |
| | | label: null, |
| | | prop: "map", |
| | | labelWidth: 10, |
| | | searchSpan: 0, |
| | | // maxlength: 5, |
| | | hide: true, |
| | | span: 2, |
| | | // display:false, |
| | | component: "AvueMap", |
| | | }, |
| | | { |
| | | label: "区县", |
| | | searchSpan: 2, |
| | | searchLabelWidth: 1, |
| | | width: 100, |
| | | searchPlaceholder: "区县", |
| | | placeholder: "区县", |
| | | search: true, |
| | | prop: "district", |
| | | type: "select", |
| | | props: { |
| | | label: "name", |
| | | value: "code", |
| | | }, |
| | | dicUrl: "/api/blade-system/region/select?code={{key}}", |
| | | span: 3, |
| | | labelWidth: "0", |
| | | className: "cityreal3", |
| | | addDisplay: true, |
| | | editDisplay: true, |
| | | viewDisplay: true, |
| | | }, |
| | | { |
| | | label: "任务状态", |
| | | label: "巡查状态", |
| | | prop: "rtype", |
| | | type: "select", |
| | | span: 6, |
| | | value: "0", |
| | | value: "2", |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择巡查状态", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | dicData: [ |
| | | { |
| | | label: "任务开始", |
| | | value: "0", |
| | | }, |
| | | { |
| | | label: "正在进行", |
| | | value: "1", |
| | | value: "2", |
| | | }, |
| | | { |
| | | label: "任务结束", |
| | | value: "2", |
| | | value: "1", |
| | | }, |
| | | { |
| | | label: "正在进行", |
| | | value: "0", |
| | | }, |
| | | ], |
| | | // label: "任务状态", |
| | |
| | | // editDisplay: false, |
| | | // }, |
| | | { |
| | | label: "发布人", |
| | | prop: "fname", |
| | | // multiple: true, |
| | | // dicUrl: "/api/catalogs/catalogs/getBigTree", |
| | | // props: { |
| | | // label: "title", |
| | | // }, |
| | | width: 72, |
| | | // hide: true, |
| | | // leafOnly: "", |
| | | addDisplay: false, |
| | | editDisplay: false, |
| | | viewDisplay: false, |
| | | }, |
| | | { |
| | | label: "积分数值", |
| | | prop: "integral", |
| | | type: "number", |
| | |
| | | // props: { |
| | | // label: "title", |
| | | // }, |
| | | span: 6, |
| | | width: 72, |
| | | // hide: true, |
| | | minRows: 1, |
| | | value: 1, |
| | | value: 5, |
| | | // leafOnly: "", |
| | | disabled: true, |
| | | addDisplay: true, |
| | | editDisplay: true, |
| | | viewDisplay: true, |
| | |
| | | addDisplay: true, |
| | | editDisplay: true, |
| | | viewDisplay: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入接收人数", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "巡逻路线", |
| | |
| | | // }, |
| | | { |
| | | label: "请在下方地图中,建立路径!", |
| | | labelWidth: "0", |
| | | labelWidth: 0, |
| | | className: "mapClass", |
| | | prop: "haveMap", |
| | | hide: true, |
| | |
| | | this.form.wd = val.latitude; |
| | | this.form.jd = val.longitude; |
| | | |
| | | this.form.gather = val.latitude + "," + val.longitude; |
| | | |
| | | var address = val.formattedAddress.toString(); |
| | | if (address.search("县") != -1) { |
| | | this.form.place = address.substring( |
| | | this.form.gathername = address.substring( |
| | | address.indexOf("县") + 1, |
| | | address.length |
| | | ); |
| | | } |
| | | if (address.search("区") != -1) { |
| | | this.form.place = address.substring( |
| | | this.form.gathername = address.substring( |
| | | address.indexOf("区") + 1, |
| | | address.length |
| | | ); |
| | |
| | | }, |
| | | rotesData() { |
| | | // console.log(this.rotesData, "rotesDatarotesDatarotesData"); |
| | | // console.log(this.rotesData, "this.rotesDatathis.rotesData"); |
| | | if (this.rotesData) { |
| | | // var haveMap = (this.option.column[9].value = "已选择路径!"); |
| | | // haveMap.value = "已选择路径!"; |
| | |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission", "flowRoutes", "rotesData"]), |
| | | ...mapGetters(["permission", "flowRoutes", "rotesData", "userInfo"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.real_add, false), |
| | |
| | | methods: { |
| | | rowSave(row, done, loading) { |
| | | // console.log(row); |
| | | // console.log(this.userInfo); |
| | | // return; |
| | | var userId1 = this.userInfo.user_id; |
| | | var username = this.userInfo.nick_name; |
| | | var phone = this.userInfo.phone; |
| | | let latleng = row.map.latitude + "," + row.map.longitude; |
| | | let d = { |
| | | line: row.line, //路线 |
| | | rname: row.rname, //标题 |
| | | url: row.url, //封面 |
| | | time: row.time, //下发时间 |
| | | time: row.timeList[0], //下发时间 |
| | | endtime: row.timeList[1], //结束时间 |
| | | province: row.$province, //省 |
| | | city: row.$city, //城市 |
| | | district: row.$district, //区县 |
| | |
| | | integral: row.integral + "", //积分 |
| | | content: row.content, //内容 |
| | | rtype: row.rtype, //任务状态 |
| | | fid: userId1, //发起人id |
| | | serid: userId1, //发起人id |
| | | fname: username, //发起人id |
| | | captain: username, //队长 |
| | | phone: phone, //发起人电话 |
| | | jurisdiction: row.jurisdiction, |
| | | gather: row.gather, //地址经纬度 |
| | | gathername: row.map.formattedAddress, //地址经纬度 |
| | | tasktype: "0", //任务类型0:治安巡查 1:治安义务宣传 2:治安防范培训 |
| | | }; |
| | | console.log(d); |
| | | // console.log(d); |
| | | // done(); |
| | | // return; |
| | | let that = this; |
| | | add(d).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | |
| | | } |
| | | ); |
| | | return; |
| | | // console.log(row, "rowrowrowrowrow"); |
| | | // console.log(this.rotesData, "rowrowrowrowrow"); |
| | | // if (!this.rotesData) { |
| | | // this.$message({ |
| | | // message: "未绘制地图路径,请重试", |
| | | // type: "warning", |
| | | // }); |
| | | // done(); |
| | | // return; |
| | | // } |
| | | // done(); |
| | | //结束后 需要把vuex中路径清除 |
| | | // that.$store.commit("setRotesData", false); |
| | | // return; |
| | | if (typeof row.securityArr != "string") { |
| | | var security = ""; |
| | | row.securityArr.forEach((item) => { |
| | | security = security + item + ","; |
| | | }); |
| | | row.securityArr = security.substring(0, security.length - 1); |
| | | } |
| | | var userId = JSON.parse( |
| | | window.localStorage.getItem("群防群控后台管理系统-userInfo") |
| | | ).content.nick_name; |
| | | |
| | | if (row.jtype != "2") { |
| | | if (row.securityArr == "" || row.securityArr == null) { |
| | | row.jtype = "0"; |
| | | row.alarmPeople = ""; |
| | | } else { |
| | | row.jtype = "1"; |
| | | //已派发保安 |
| | | } |
| | | } |
| | | row.alarmPeople = userId; |
| | | |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | loading(); |
| | | } |
| | | ); |
| | | }, |
| | | getxllx(val) { |
| | | var that = this; |
| | | if (this.$refs.modalForm == undefined) { |
| | | setTimeout(function () { |
| | | that.$refs.modalForm.addLinesDraw(val); |
| | | try { |
| | | that.$refs.modalForm.addLinesDraw(val); |
| | | } catch (error) {} |
| | | }, 1500); |
| | | } else { |
| | | that.$refs.modalForm.addLinesDraw(val); |
| | | try { |
| | | that.$refs.modalForm.addLinesDraw(val); |
| | | } catch (error) {} |
| | | } |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | // var userId = JSON.parse( |
| | | // window.localStorage.getItem("群防群控后台管理系统-userInfo") |
| | | // ).content.nick_name; |
| | | // if (typeof row.securityArr != "string") { |
| | | // var security = ""; |
| | | // row.securityArr.forEach((item) => { |
| | | // security = security + item + ","; |
| | | // }); |
| | | // row.securityArr = security.substring(0, security.length - 1); |
| | | // } |
| | | // if (row.jtype != "2") { |
| | | // if (row.securityArr == "" || row.securityArr == null) { |
| | | // row.jtype = "0"; |
| | | // row.alarmPeople = ""; |
| | | // } else { |
| | | // row.jtype = "1"; |
| | | // //已派发保安 |
| | | // } |
| | | // } |
| | | // row.alarmPeople = userId; |
| | | // row.coordinate = ""; |
| | | // console.log(row); |
| | | // row.province = row.$province; //省 |
| | | // row.city = row.$city; //城市 |
| | | // row.district = row.$district; //区县 |
| | | // return; |
| | | let that = this; |
| | | row.time = row.timeList[0]; |
| | | row.endtime = row.timeList[1]; |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | |
| | | }); |
| | | }, |
| | | beforeOpen(done, type) { |
| | | this.form.timeList = []; |
| | | this.form["timeList"][0]= this.form["time"]; |
| | | this.form["timeList"][1]= this.form["endtime"]; |
| | | // console.log(type, "this.formthis.formthis.form"); |
| | | // console.log(type); |
| | | // if (["edit", "view"].includes(type)) { |
| | | // getclient(this.form.id).then((res) => { |
| | |
| | | // }); |
| | | // } |
| | | // console.log(this.form); |
| | | if (type == "add") { |
| | | this.$store.commit("setRotesData", false); //用vuex传最终数据 清除 |
| | | done(); |
| | | return; |
| | | } |
| | | if (this.form.line != "" && this.form != undefined) { |
| | | this.form["haveMap"] = "已绘制路径!"; |
| | | } else { |
| | |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | // const { releaseTimeRange } = this.query; |
| | | // let values = { |
| | | // ...params, |
| | | // }; |
| | | |
| | | // if ( |
| | | // this.$route.query.waringType && |
| | | // this.$route.query != undefined && |
| | | // this.$route.query != null && |
| | | // this.$route.query != "" |
| | | // ) { |
| | | // if ( |
| | | // this.$route.query.status != undefined && |
| | | // this.$route.query.status != null && |
| | | // this.$route.query.status == "" |
| | | // ) { |
| | | // this.activeClass = this.$route.query.status; |
| | | // this.page.currentPage = 1; |
| | | // if (this.$route.query.status == 0) { |
| | | // params = { |
| | | // waringType: this.$route.query.waringType, |
| | | // beginTime: this.dateTime.day.beginTime, |
| | | // endTime: this.dateTime.day.endTime, |
| | | // }; |
| | | // } else if (this.$route.query.status == 1) { |
| | | // params = { |
| | | // waringType: this.$route.query.waringType, |
| | | // beginTime: this.dateTime.week.beginTime, |
| | | // endTime: this.dateTime.week.endTime, |
| | | // }; |
| | | // } else if (this.$route.query.status == 2) { |
| | | // params = { |
| | | // waringType: this.$route.query.waringType, |
| | | // beginTime: this.dateTime.month.beginTime, |
| | | // endTime: this.dateTime.month.endTime, |
| | | // }; |
| | | // } |
| | | // } else { |
| | | // this.activeClass = 0; |
| | | // this.page.currentPage = 1; |
| | | // params = { |
| | | // waringType: this.$route.query.waringType, |
| | | // beginTime: this.dateTime.day.beginTime, |
| | | // endTime: this.dateTime.day.endTime, |
| | | // }; |
| | | // } |
| | | |
| | | // if ( |
| | | // this.$route.query.startTime != undefined && |
| | | // this.$route.query.startTime != null && |
| | | // this.$route.query.startTime != "" |
| | | // ) { |
| | | // params = { |
| | | // waringType: this.$route.query.waringType, |
| | | // beginTime: this.$route.query.startTime, |
| | | // endTime: this.$route.query.endTime, |
| | | // }; |
| | | // } |
| | | // } |
| | | // if (releaseTimeRange) { |
| | | // values = { |
| | | // ...params, |
| | | // beginTime: releaseTimeRange[0], |
| | | // endTime: releaseTimeRange[1], |
| | | // ...this.query, |
| | | // }; |
| | | // values.releaseTimeRange = null; |
| | | // } else { |
| | | // values = { |
| | | // ...params, |
| | | // ...this.query, |
| | | // }; |
| | | // } |
| | | |
| | | // if (this.$route.query.timeDesc) { |
| | | // values = { |
| | | // ...params, |
| | | // timeDesc: this.$route.query.timeDesc, |
| | | // ...this.query, |
| | | // }; |
| | | // } |
| | | |
| | | // this.loading = true; |
| | | getList(page.currentPage, page.pageSize).then((res) => { |
| | | params["tasktype"] = "0"; // 治安巡查 |
| | | getList(page.currentPage, page.pageSize, params).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | |
| | |
| | | PoliceTracking(row) { |
| | | var arr = []; |
| | | this.$store.state.tags.tagList.forEach((item) => { |
| | | if (item.label != "任务追踪") { |
| | | if (item.label != "任务详情") { |
| | | arr.push(item); |
| | | } |
| | | }); |
| | | this.$store.state.tags.tagList = arr; |
| | | //警情追踪 |
| | | this.$router.push({ path: "/policeTracking/track", query: row }); |
| | | this.$router.push({ path: "/policeTracking/details", query: row }); |
| | | }, |
| | | //打开新增窗体 |
| | | openAdd() { |