From ba71b6abd3ae6eb4ede91e56d0fdb0205c7bef41 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 28 十一月 2022 17:47:55 +0800
Subject: [PATCH] fix: 案卷查询
---
src/components/dispatch/index.vue | 767 +++++++++++++++++++++++++++++++++-------------------------
1 files changed, 433 insertions(+), 334 deletions(-)
diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue
index c5aebf1..2089ae8 100644
--- a/src/components/dispatch/index.vue
+++ b/src/components/dispatch/index.vue
@@ -1,356 +1,455 @@
<template>
- <div class="dispatch">
- <el-form ref="form" :model="dispatch" :rules="rules" label-width="120px">
- <!-- 閫夋嫨璺濈 -->
- <el-form-item label="璺濈:" prop="distance">
- <el-radio-group v-model="dispatch.distance">
- <el-radio :label="1">100m浠ュ唴</el-radio>
- <el-radio :label="2">300m浠ュ唴</el-radio>
- <el-radio :label="3">500m浠ュ唴</el-radio>
- <el-radio :label="4">1km浠ュ唴</el-radio>
- <el-radio :label="5">2km浠ュ唴</el-radio>
- <el-radio :label="6">3km浠ュ唴</el-radio>
- </el-radio-group>
- </el-form-item>
- <!-- 閫夋嫨鎵ф硶杞� -->
- <el-form-item label="閫夋嫨鎵ф硶杞�:" prop="enforcementCar">
- <el-select v-model="dispatch.enforcementCar" placeholder="璇烽�夋嫨">
- <el-option v-for="item in carOptions" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <!-- 閫夋嫨浜哄憳 -->
- <div class="form-person">
- <!-- 閮ㄩ棬 -->
- <el-form-item label="閫夋嫨浜哄憳:" prop="dispatchOpinion">
- <el-select v-model="dispatch.dispatchOpinion" placeholder="璇烽�夋嫨閮ㄩ棬" @change="handleTopChange">
- <el-option v-for="item in departOptions" :key="item.id" :label="item.departName"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <!-- 涓槦 -->
- <el-form-item prop="enforcementTeam" class="person-item">
- <el-select v-model="dispatch.enforcementTeam" placeholder="閫夋嫨涓槦"
- :disabled="squadronOptions.length!==0?false:true" @change="handleMidChange">
- <el-option v-for="item in squadronOptions" :key="item.id" :label="item.departName"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item prop='lawEnforcer' class="person-item">
- <!-- 浜哄憳 -->
- <el-select v-model="dispatch.lawEnforcer" placeholder="璇烽�夋嫨浜哄憳"
- :disabled="personOptions.length !== 0 ? false:true" @change="handlePerChange">
- <el-option v-for="item in personOptions" :key="item.id" :label="item.username" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- </div>
- <div class="form-footer">
- <!-- 鎵ф硶浜哄憳缂栧彿 -->
- <el-form-item label="鎵ф硶浜哄憳缂栧彿:" prop="lawEnforcerName">
- <el-input v-model="dispatch.lawEnforcerName"></el-input>
- </el-form-item>
- <!-- 鎵ф硶浜哄憳鑱旂郴鏂瑰紡 -->
- <el-form-item label="鑱旂郴鏂瑰紡:" prop="contactWay">
- <el-input v-model="dispatch.contactWay"></el-input>
- </el-form-item>
- <el-button type="primary">鍙戦�佺煭淇�</el-button>
- </div>
- </el-form>
- <div class="map">
- <!-- <MyMap></MyMap> -->
- </div>
- <div class="footer">
- <el-button type="primary" @click="handleDispatch">纭畾</el-button>
- <el-button @click="handleBack">杩斿洖</el-button>
- </div>
+ <div class="dispatch">
+ <el-form ref="form" :model="dispatch" :rules="rules" label-width="120px">
+ <!-- 閫夋嫨璺濈 -->
+ <el-form-item label="璺濈:" prop="distance">
+ <el-radio-group v-model="dispatch.distance">
+ <el-radio :label="1">100m浠ュ唴</el-radio>
+ <el-radio :label="2">300m浠ュ唴</el-radio>
+ <el-radio :label="3">500m浠ュ唴</el-radio>
+ <el-radio :label="4">1km浠ュ唴</el-radio>
+ <el-radio :label="5">2km浠ュ唴</el-radio>
+ <el-radio :label="6">3km浠ュ唴</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <!-- 閫夋嫨鎵ф硶杞� -->
+ <el-form-item label="閫夋嫨鎵ф硶杞�:" prop="enforcementCar">
+ <el-select v-model="dispatch.enforcementCar" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in carOptions"
+ :key="item.id"
+ :label="item.carNumber"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <!-- 閫夋嫨浜哄憳 -->
+ <div class="form-person">
+ <!-- 閮ㄩ棬 -->
+ <el-form-item label="閫夋嫨浜哄憳:" prop="createUser">
+ <el-select
+ v-model="dispatch.createUser"
+ placeholder="璇烽�夋嫨閮ㄩ棬"
+ @change="handleTopChange"
+ >
+ <el-option
+ v-for="item in departOptions"
+ :key="item.id"
+ :label="item.departName"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <!-- 涓槦 -->
+ <el-form-item prop="enforcementTeam" class="person-item">
+ <el-select
+ v-model="dispatch.enforcementTeam"
+ placeholder="閫夋嫨涓槦"
+ :disabled="
+ squadronOptions.length !== 0 && squadronOptions ? false : true
+ "
+ @change="handleMidChange"
+ >
+ <el-option
+ v-for="item in squadronOptions"
+ :key="item.id"
+ :label="item.departName"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item prop="lawEnforcer" class="person-item">
+ <!-- 浜哄憳 -->
+ <el-select
+ v-model="dispatch.lawEnforcer"
+ placeholder="璇烽�夋嫨浜哄憳"
+ :disabled="
+ personOptions.length !== 0 && personOptions ? false : true
+ "
+ @change="handlePerChange"
+ >
+ <el-option
+ v-for="item in personOptions"
+ :key="item.id"
+ :label="item.username"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="form-footer">
+ <!-- 鎵ф硶浜哄憳缂栧彿 -->
+ <el-form-item label="鎵ф硶浜哄憳缂栧彿:" prop="lawEnforcerName">
+ <el-input v-model="dispatch.lawEnforcerName" disabled></el-input>
+ </el-form-item>
+ <!-- 鎵ф硶浜哄憳鑱旂郴鏂瑰紡 -->
+ <el-form-item label="鑱旂郴鏂瑰紡:" prop="contactWay">
+ <el-input v-model="dispatch.contactWay" disabled></el-input>
+ </el-form-item>
+ <el-button type="primary">鍙戦�佺煭淇�</el-button>
+ </div>
+ <div class="form-time">
+ <el-form-item label="娲鹃仯鎰忚" prop="dispatchOpinion">
+ <el-input
+ v-model="dispatch.dispatchOpinion"
+ placeholder="璇疯緭鍏ユ淳閬f剰瑙�"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="澶勭疆鏃ユ湡" prop="disposeDate">
+ <el-date-picker
+ v-model="dispatch.disposeDate"
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </div>
+ </el-form>
+ <div class="map">
+ <!-- <MyMap></MyMap> -->
</div>
+ <div class="footer">
+ <el-button type="primary" @click="handleDispatch">纭畾</el-button>
+ <el-button @click="handleBack">杩斿洖</el-button>
+ </div>
+ </div>
</template>
<script>
-import MyMap from '@/components/map'
+import MyMap from "@/components/map";
+import { parseTime } from "@/utils/index";
export default {
- components: {
- MyMap
+ components: {
+ MyMap,
+ },
+ props: ["id", "changeDialog", "refresh", "mytype"],
+ created() {
+ // 鍒ゆ柇杞﹁締绫诲瀷
+ this.mytype === 1 ? this.getLawCarList() : this.getSoilCarList();
+ this.getDepartList();
+ },
+ data() {
+ const checkPhone = (rule, value, callback) => {
+ if (value) {
+ const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/;
+ if (!rep.test(value)) {
+ callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+ } else {
+ callback();
+ }
+ } else {
+ callback();
+ }
+ };
+ const checkOpinion = (rule, value, callback) => {
+ if (value) {
+ callback();
+ } else {
+ callback(new Error("娲鹃仯鎰忚涓嶈兘涓虹┖"));
+ }
+ };
+ const checkDistance = (rule, value, callback) => {
+ if (value) {
+ callback();
+ } else {
+ callback(new Error("璺濈涓嶈兘涓虹┖"));
+ }
+ };
+ const checkTeam = (rule, value, callback) => {
+ if (value) {
+ callback();
+ } else {
+ callback(new Error("澶勭疆鏃ユ湡涓嶈兘涓虹┖"));
+ }
+ };
+ const checkPerson = (rule, value, callback) => {
+ if (value) {
+ callback();
+ } else {
+ callback();
+ }
+ };
+ const checkNumber = (rule, value, callback) => {
+ if (value) {
+ callback();
+ } else {
+ callback();
+ }
+ };
+ const checkDepart = (rule, value, callback) => {
+ if (value) {
+ callback();
+ } else {
+ callback(new Error("璇烽�夋嫨閮ㄩ棬"));
+ }
+ };
+ return {
+ dispatch: {
+ baseCaseId: 0, //妗堜欢id
+ contactWay: "", //鑱旂郴鏂瑰紡
+ dispatchOpinion: "", //澶勭疆鎰忚
+ disposeDate: "", //澶勭疆鏃ユ湡
+ distance: 0, //璺濈
+ enforcementCar: "", //鎵ф硶杞�
+ enforcementTeam: "", //鎵ф硶涓槦
+ lawEnforcer: "", //鎵ф硶浜哄憳
+ lawEnforcerName: "", //鎵ф硶缂栧彿,
+ createUser: null,
+ },
+ rules: {
+ createUser: [
+ {
+ required: true,
+ trigger: "change",
+ validator: checkDepart,
+ },
+ ],
+ contactWay: [
+ {
+ required: false,
+ trigger: "blur",
+ validator: checkPhone,
+ },
+ ],
+ dispatchOpinion: [
+ { required: true, trigger: "change", validator: checkOpinion },
+ ],
+ // distance: [
+ // { required: true, trigger: "change", validator: checkDistance },
+ // ],
+ // enforcementTeam: [
+ // { required: true, trigger: 'change', validator: checkTeam }
+ // ],
+ lawEnforcer: [
+ { required: true, trigger: "change", validator: checkPerson },
+ ],
+ lawEnforcerName: [
+ { required: false, trigger: "change", validator: checkNumber },
+ ],
+ disposeDate: [
+ {
+ required: true,
+ trigger: "false",
+ validator: checkTeam,
+ },
+ ],
+ },
+ carOptions: [
+ {
+ label: "杞﹁締涓�",
+ value: 1,
+ },
+ {
+ label: "杞﹁締浜�",
+ value: 2,
+ },
+ ],
+ departOptions: [],
+ carOptions: [
+ {
+ label: "杞﹁締涓�",
+ value: 1,
+ },
+ {
+ label: "杞﹁締浜�",
+ value: 2,
+ },
+ ],
+ squadronOptions: [],
+ personOptions: [],
+ };
+ },
+ methods: {
+ // 鎵ц璋冨害
+ handleDispatch() {
+ console.log(this.dispatch);
+ this.$refs.form.validate((valid) => {
+ console.log(valid);
+ if (valid) {
+ const { dispatch, id } = this;
+ // dispatch.disposeDate = new Date();
+ console.log(id);
+ dispatch.baseCaseId = id;
+ console.log(dispatch);
+ this.$axios({
+ method: "post",
+ url: `sccg/dispatch_handle/dispatch`,
+ data: dispatch,
+ }).then((res) => {
+ this.$message({
+ type: res.code === 200 ? "success" : "error",
+ message: res.code === 200 ? "璋冨害鎴愬姛" : res.message,
+ });
+ this.$emit("changeDialog", { flag: false });
+ this.refresh();
+ });
+ } else {
+ return false;
+ }
+ });
},
- props: ['id', 'changeDialog', 'refresh', 'mytype'],
- created() {
- // 鍒ゆ柇杞﹁締绫诲瀷
- this.mytype === 1 ? this.getLawCarList() : this.getSoilCarList();
- this.getDepartList();
+ // 鍙栨秷璋冨害
+ handleBack() {
+ this.$emit("changeDialog", { flag: false });
},
- data() {
- const checkPhone = (rule, value, callback) => {
- if (value) {
- const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
- if (!rep.test(value)) {
- callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
- } else {
- callback();
- }
- } else {
- callback(new Error('鑱旂郴鏂瑰紡涓嶈兘涓虹┖'))
- }
- }
- const checkOpinion = (rule, value, callback) => {
- if (value) {
- callback();
- } else {
- callback(new Error('閮ㄩ棬涓嶈兘涓虹┖'))
- }
- }
- const checkDistance = (rule, value, callback) => {
- if (value) {
- callback();
- } else {
- callback(new Error('璺濈涓嶈兘涓虹┖'))
- }
- }
- const checkTeam = (rule, value, callback) => {
- if (value) {
- callback();
- } else {
- callback(new Error('涓槦涓嶈兘涓虹┖'))
- }
- }
- const checkPerson = (rule, value, callback) => {
- if (value) {
- callback();
- } else {
- callback(new Error('鎵ф硶浜哄憳涓嶈兘涓虹┖'))
- }
- }
- const checkNumber = (rule, value, callback) => {
- if (value) {
- callback();
- } else {
- callback(new Error('鎵ф硶浜哄憳缂栧彿涓嶈兘涓虹┖'))
- }
- }
- return {
- dispatch: {
- baseCaseId: 0,//妗堜欢id
- contactWay: "",//鑱旂郴鏂瑰紡
- dispatchOpinion: "",//閮ㄩ棬
- disposeDate: "",//澶勭疆鏃ユ湡
- distance: 0,//璺濈
- enforcementCar: '',//鎵ф硶杞�
- enforcementTeam: "",//鎵ф硶涓槦
- lawEnforcer: '',//鎵ф硶浜哄憳
- lawEnforcerName: ""//鎵ф硶缂栧彿
- },
- rules: {
- contactWay: [
- {
- required: true, trigger: 'blur', validator: checkPhone
- }
- ],
- dispatchOpinion: [
- { required: true, trigger: 'change', validator: checkOpinion }
- ],
- distance: [
- { required: true, trigger: 'change', validator: checkDistance }
- ],
- // enforcementTeam: [
- // { required: true, trigger: 'change', validator: checkTeam }
- // ],
- lawEnforcer: [
- { required: true, trigger: 'change', validator: checkPerson }
- ],
- lawEnforcerName: [
- { required: true, trigger: 'change', validator: checkNumber }
- ],
- },
- carOptions: [
- {
- label: '杞﹁締涓�',
- value: 1,
- },
- {
- label: '杞﹁締浜�',
- value: 2,
- },
- ],
- departOptions: [
- ],
- carOptions: [
- {
- label: '杞﹁締涓�',
- value: 1,
- },
- {
- label: '杞﹁締浜�',
- value: 2,
- },
- ],
- squadronOptions: [
- ],
- personOptions: [
-
- ],
- }
+ // 鑾峰彇鎵ф硶杞﹁締
+ getLawCarList() {
+ this.$axios({
+ method: "get",
+ url: `sccg/car_Manage/query_enforce?current=1&size=1000`,
+ }).then((res) => {
+ this.carOptions = res.data.records;
+ console.log(res, this.carOptions);
+ });
},
- methods: {
- // 鎵ц璋冨害
- handleDispatch() {
- console.log(this.dispatch);
- this.$refs.form.validate((valid) => {
- console.log(valid);
- if (valid) {
- const { dispatch, id } = this;
- dispatch.disposeDate = new Date();
- console.log(id);
- dispatch.baseCaseId = id;
- console.log(dispatch);
- this.$axios({
- method: 'post',
- url: `sccg/dispatch_handle/dispatch`,
- data: dispatch
- })
- .then(res => {
- this.$message({
- type: res.code === 200 ? 'success' : 'error',
- message: res.code === 200 ? '璋冨害鎴愬姛' : res.message,
- })
- this.$emit('changeDialog', { flag: false });
- this.refresh();
- })
- } else {
- return false;
- }
- })
- },
- // 鍙栨秷璋冨害
- handleBack() {
- this.$emit('changeDialog', { flag: false })
- },
- // 鑾峰彇鎵ф硶杞﹁締
- getLawCarList() {
- this.$axios({
- method: 'get',
- url: `sccg/car_Manage/query_enforce?current=1&size=1000`
- })
- .then(res => {
- this.carOptions = res.data.orders;
- console.log(res);
- })
- },
- // 鑾峰彇娓e湡杞﹁締
- getSoilCarList() {
- this.$axios({
- method: 'get',
- url: `sccg/car_Manage/query_slag?current=1&size=1000`
- })
- .then(res => {
- this.carOptions = res.data.orders;
- console.log(res);
- })
- },
- // 鑾峰彇椤剁骇閮ㄩ棬
- getDepartList() {
- this.$axios({
- method: 'get',
- url: `sccg/depart/query_father`,
- })
- .then(res => {
- this.departOptions = res.data;
- })
- },
- // 鑾峰彇涓槦
- async getTeamList(id) {
- await this.$axios({
- method: 'get',
- url: `sccg/depart/query_father_children?fatherId=${id}`
- })
- .then(res => {
- this.squadronOptions = res.data;
- })
- .catch(err => {
- console.log(err);
- })
- },
- // 鑾峰彇閮ㄩ棬涓嬬殑鐢ㄦ埛
- async getDepartUserList(id) {
- await this.$axios({
- method: 'get',
- url: `sccg/admin/getDepartUser/${id}`,
- })
- .then(res => {
- this.personOptions = res.data;
- })
- .catch(err => {
- this.$message({
- type: 'error',
- message: '璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�'
- })
- })
- },
- // 閮ㄩ棬鏇存敼
- async handleTopChange(id) {
- this.dispatch.lawEnforcer = '';
- this.dispatch.enforcementTeam = '';
- await this.getTeamList(id);
- await this.getDepartUserList(id);
- },
- // 涓槦鏇存敼
- async handleMidChange(id) {
- this.dispatch.lawEnforcer = '';
- await this.getDepartUserList(id);
- },
- // 浜哄憳鏇存敼
- async handlePerChange(id){
- let obj = await this.getLawUser(id);
- this.dispatch.lawEnforcerName = obj.nickName;
- this.dispatch.contactWay = obj.mobile;
- },
- // 鑾峰彇鎵ф硶浜哄憳淇℃伅
- async getLawUser(id){
- let obj = {}
- await this.$axios({
- method:'get',
- url:`sccg/admin/${id}`
- })
- .then(res=>{
- obj = res.data;
- })
- return obj;
+ // 鑾峰彇娓e湡杞﹁締
+ getSoilCarList() {
+ this.$axios({
+ method: "get",
+ url: `sccg/car_Manage/query_enforce?current=1&size=1000`,
+ }).then((res) => {
+ this.carOptions = res.data.records;
+ });
+ },
+ // 鑾峰彇椤剁骇閮ㄩ棬
+ getDepartList() {
+ this.$axios({
+ method: "get",
+ url: `sccg/depart/query_father`,
+ }).then((res) => {
+ this.departOptions = res.data;
+ });
+ },
+ // 鑾峰彇涓槦
+ async getTeamList(id) {
+ console.log(id);
+ await this.$axios({
+ method: "get",
+ url: `sccg/depart/query_father_children?fatherId=${id}`,
+ })
+ .then((res) => {
+ this.squadronOptions = res.data;
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ },
+ // 鑾峰彇閮ㄩ棬涓嬬殑鐢ㄦ埛
+ async getDepartUserList(id) {
+ console.log(id);
+ await this.$axios({
+ method: "get",
+ url: `sccg/admin/getDepartUser/${id}`,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.personOptions = res.data;
+ } else {
+ this.personOptions = [];
+ }
+ if (this.personOptions.length === 0) {
+ this.$message({
+ type: "warning",
+ message: "璇ヤ腑闃熶笅娌℃湁浜哄憳",
+ });
+ }
+ })
+ .catch((err) => {
+ this.$message({
+ type: "error",
+ message: "璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�",
+ });
+ });
+ },
+ // 閮ㄩ棬鏇存敼
+ async handleTopChange(id) {
+ this.dispatch.lawEnforcer = "";
+ this.dispatch.enforcementTeam = "";
+ this.dispatch.contactWay = "";
+ this.dispatch.lawEnforcerName = "";
+ await this.getTeamList(id);
+ // if (this.squadronOptions.length === 0) {
+ // await this.getDepartUserList(id);
+ // }
+ },
+ // 涓槦鏇存敼
+ async handleMidChange(id) {
+ this.dispatch.lawEnforcer = "";
+ this.dispatch.contactWay = "";
+ this.dispatch.lawEnforcerName = "";
+ await this.getDepartUserList(id);
+ },
+ // 浜哄憳鏇存敼
+ async handlePerChange(id) {
+ let obj = await this.getLawUser(id);
+ this.dispatch.lawEnforcerName = obj.nickName;
+ this.dispatch.contactWay = obj.mobile;
+ },
+ // 鑾峰彇鎵ф硶浜哄憳淇℃伅
+ async getLawUser(id) {
+ let obj = {};
+ await this.$axios({
+ method: "get",
+ url: `sccg/admin/${id}`,
+ }).then((res) => {
+ obj = res.data;
+ });
+ return obj;
+ },
+ },
+ watch: {
+ "squadronOptions.length": {
+ handler(newval, oldval) {
+ console.log(newval);
+ if (newval === 0) {
+ console.log(1);
+ this.$message({
+ type: "warning",
+ message: "璇ラ儴闂ㄤ笅娌℃湁涓槦",
+ });
}
- }
-}
+ },
+ deep: true,
+ },
+ },
+};
</script>
<style lang="scss" scoped>
.dispatch {
- padding: 50px 20px 10px;
+ padding: 50px 20px 10px;
- .form-person {
- display: flex;
+ .form-person {
+ display: flex;
- .person-item {
- margin-left: -100px;
- }
+ .person-item {
+ margin-left: -100px;
}
+ }
- .form-footer {
- display: flex;
- align-items: center;
- line-height: 40px;
+ .form-footer {
+ display: flex;
+ align-items: center;
+ line-height: 40px;
- .el-button {
- margin-bottom: 22px;
- margin-left: 40px;
- }
+ .el-button {
+ margin-bottom: 22px;
+ margin-left: 40px;
}
+ }
- .map {
- height: 388px;
- width: 100%;
- }
+ .map {
+ height: 388px;
+ width: 100%;
+ }
- .footer {
- display: flex;
- justify-content: flex-end;
- padding: 10px 20px;
- }
+ .footer {
+ display: flex;
+ justify-content: flex-end;
+ padding: 10px 20px;
+ }
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0