From 893fc457a2daeb0aa33a5a9d0b32eef7db238c1f Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 23 十月 2023 21:58:07 +0800
Subject: [PATCH] bug修改

---
 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 1136 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 784 insertions(+), 352 deletions(-)

diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
index 8f60473..1bc7e34 100644
--- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
+++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -1,379 +1,811 @@
 <template>
-    <div class="vio">
-        <div class="input-area">
-            <div class="input-header">
-                <div class="input-header__title">鍩虹淇℃伅</div>
-                <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div>
-            </div>
-            <div class="input-form">
-                <el-form ref="user" label-width="100px" autoComplete="on" :model="vio" :rules="createRoleRules"
-                    label-position="right">
-                    <!-- 闂绫诲瀷 -->
-                    <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category">
-                        <el-select v-model="vio.category" placeholder="杩濊" disabled>
-                            <el-option v-for="item in typeList" :key="item.label" :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <!-- 澶х被鍚嶇О -->
-                    <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="categoryId">
-                        <el-select v-model="vio.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О">
-                            <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <!-- 灏忕被鍚嶇О -->
-                    <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId">
-                        <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О">
-                            <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" :value="item.id"
-                                :disabled="item.disabled">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <!-- 浜嬩欢绛夌骇 -->
-                    <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="status">
-                        <el-select v-model="vio.level" placeholder="璇烽�夋嫨妗堜欢绛夌骇">
-                            <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name" :value="item.id"
-                                :disabled="item.disabled">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <!-- 妗堢敱 -->
-                    <el-form-item class="optionItem" label="妗堢敱:" prop="actionCause">
-                        <el-input v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"></el-input>
-                    </el-form-item>
-                    <!-- 鎵�灞炲尯鍘� -->
-                    <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status">
-                        <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炲尯鍘�">
-                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
-                                :disabled="item.disabled">
-                            </el-option>
-                        </el-select>
-                    </el-form-item> -->
-                    <!-- 鎵�灞炵ぞ鍖� -->
-                    <!-- <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="status">
-                        <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�">
-                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
-                                :disabled="item.disabled">
-                            </el-option>
-                        </el-select>
-                    </el-form-item> -->
-                    <!-- 鎵�灞炶閬� -->
-                    <!-- <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="status">
-                        <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炶閬�">
-                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
-                                :disabled="item.disabled">
-                            </el-option>
-                        </el-select>
-                    </el-form-item> -->
-                    <!-- 浜嬪彂鍦扮偣 -->
-                    <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site">
-                        <el-input placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆" v-model="vio.site"></el-input>
-                    </el-form-item>
-                    <!-- 鏄惁鍏宠仈鍟嗛摵 -->
-                    <el-form-item class="optionItems" label="鏄惁鍏宠仈鍟嗛摵:" prop="linkShop">
-                        <el-radio-group v-model="vio.linkShop">
-                            <el-radio :label="1">鏄�</el-radio>
-                            <el-radio :label="0">鍚�</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                    <!-- 鍏宠仈鍟嗛摵鍚嶇О -->
-                    <el-form-item class="optionItems" label="鍏宠仈鍟嗛摵鍚嶇О:" prop="shopName">
-                        <el-input placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�" v-model="vio.shopName" :disabled="vio.linkShop === 1 ?false : true"></el-input>
-                    </el-form-item>
-                    <!-- 濉啓杞︾墝鍙� -->
-                    <el-form-item class="optionItems" label="濉啓杞︾墝鍙�:" prop="carNumber">
-                        <el-input placeholder="璇峰~鍐欒溅鐗屽彿" v-model="vio.carNumber"></el-input>
-                    </el-form-item>
-                    <!-- 闂鎻忚堪 -->
-                    <el-form-item class="optionItems" label="闂鎻忚堪:" prop="description">
-                        <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" v-model="vio.description"></el-input>
-                    </el-form-item>
-                </el-form>
-            </div>
-            <div class="not-need">
-                <div class="not-need__header">
-                    濉啓鍙嶆槧浜轰俊鎭�
-                </div>
-                <div class="not-need-item">
-                    <label>鍙嶆槧浜�:</label>
-                    <input type="text" class="not-need__inner">
-                </div>
-                <div class="not-need-item">
-                    <label>鑱旂郴鏂瑰紡:</label>
-                    <input type="text" class="not-need__inner">
-                </div>
-                <div class="not-need-item">
-                    <label>韬唤璇佸彿:</label>
-                    <input type="text" class="not-need__inner">
-                </div>
-            </div>
-            <div class="input-footer">
-                <el-button type="primary" class="confirm" @click="handleSubmit">纭畾</el-button>
-                <el-button class="back">杩斿洖</el-button>
-            </div>
-        </div>
-        <div class="map-area">
-            <!-- <MyMap /> -->
-        </div>
+  <div class="vio">
+    <div class="input-area">
+      <div class="input-header">
+        <div class="input-header__title">鍩虹淇℃伅</div>
+        <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div>
+      </div>
+      <div class="input-form">
+        <el-form
+          ref="user"
+          label-width="120px"
+          autoComplete="on"
+          :model="vio"
+          :rules="createRoleRules"
+          label-position="right"
+        >
+          <div class="user-item">
+            <!-- 闂绫诲瀷 -->
+            <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category">
+              <el-select v-model="vio.category" placeholder="杩濊" disabled>
+                <el-option
+                  v-for="item in typeList"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 澶х被鍚嶇О -->
+            <el-form-item
+              class="optionItems"
+              label="澶х被鍚嶇О:"
+              prop="categoryId"
+            >
+              <el-select
+                v-model="vio.categoryId"
+                placeholder="璇烽�夋嫨澶х被鍚嶇О"
+                @change="handleBigKindChange"
+              >
+                <el-option
+                  v-for="item in bigKindList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <div class="user-item">
+            <!-- 灏忕被鍚嶇О -->
+            <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId">
+              <el-select
+                v-model="vio.typeId"
+                placeholder="璇烽�夋嫨灏忕被鍚嶇О"
+                @change="handleSmallKindChange"
+              >
+                <el-option
+                  v-for="item in smallKindList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 浜嬩欢绛夌骇 -->
+            <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="gradeId">
+              <el-cascader
+                :show-all-levels="false"
+                v-model="vio.gradeId"
+                :props="{
+                  value: 'id',
+                  label: 'name',
+                  children: 'children',
+                  emitPath: false,
+                }"
+                :options="eventLevelList"
+              ></el-cascader>
+            </el-form-item>
+          </div>
+          <!-- 妗堢敱 -->
+          <el-form-item
+            class="optionItem anyou"
+            label="妗堢敱:"
+            prop="actionCause"
+          >
+            <el-select
+              v-model="vio.actionCause"
+              placeholder="璇疯緭鍏ユ鐢�"
+              filterable
+              @blur="selectBlur"
+            >
+              <el-option
+                v-for="item in anYouList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <div class="user-item">
+            <!-- 鎵�灞炶閬� -->
+            <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId">
+              <el-select
+                v-model="vio.streetId"
+                placeholder="璇烽�夋嫨鎵�灞炶閬�"
+                @change="handleStreet"
+              >
+                <el-option
+                  v-for="item in streetList"
+                  :key="item.id"
+                  :label="item.regionName"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 鎵�灞炵ぞ鍖� -->
+            <el-form-item
+              class="optionItems"
+              label="鎵�灞炵ぞ鍖�:"
+              prop="communityId"
+            >
+              <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�">
+                <el-option
+                  v-for="item in communityList"
+                  :key="item.id"
+                  :label="item.regionName"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <!-- 浜嬪彂鍦扮偣 -->
+          <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site">
+            <el-input
+              placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆"
+              v-model="vio.site"
+            ></el-input>
+          </el-form-item>
+          <div class="user-item">
+            <!-- 鏄惁鍏宠仈鍟嗛摵 -->
+            <el-form-item
+              class="optionItems"
+              label="鏄惁鍏宠仈鍟嗛摵:"
+              prop="linkShop"
+            >
+              <el-radio-group v-model="vio.linkShop" @change="handleLinkShop">
+                <el-radio :label="1">鏄�</el-radio>
+                <el-radio :label="0">鍚�</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <!-- 鍏宠仈鍟嗛摵鍚嶇О -->
+            <el-form-item
+              class="optionItems"
+              label="鍏宠仈鍟嗛摵鍚嶇О:"
+              prop="shopName"
+            >
+              <el-select
+                v-model="vio.shopName"
+                :disabled="vio.linkShop === 0"
+                placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�"
+              >
+                <el-option
+                  v-for="store in storeList"
+                  :key="store.id"
+                  :value="store.id"
+                  :label="store.storeName"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <!-- 濉啓杞︾墝鍙� -->
+          <el-form-item
+            class="optionItems"
+            label="濉啓杞︾墝鍙�:"
+            prop="carNumber"
+          >
+            <el-input
+              placeholder="璇峰~鍐欒溅鐗屽彿"
+              v-model="vio.carNumber"
+            ></el-input>
+          </el-form-item>
+          <!-- 闂鎻忚堪 -->
+          <el-form-item
+            class="optionItems"
+            label="闂鎻忚堪:"
+            prop="description"
+          >
+            <el-input
+              type="textarea"
+              :rows="5"
+              maxlength="200"
+              placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�"
+              v-model="vio.description"
+            >
+            </el-input>
+          </el-form-item>
+          <div class="user-item">
+            <!-- 鎶ヨ鏃堕棿 -->
+            <el-form-item
+              class="optionItems"
+              label="鎶ヨ鏃堕棿:"
+              prop="alarmTime"
+            >
+              <el-date-picker
+                v-model="vio.alarmTime"
+                type="datetime"
+                placeholder="閫夋嫨鎶ヨ鏃堕棿"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <!-- 璋冨害鏃堕檺 -->
+            <el-form-item
+              class="optionItems"
+              label="璋冨害鏃堕檺:"
+              prop="limitTime"
+            >
+              <el-date-picker
+                v-model="vio.limitTime"
+                type="datetime"
+                placeholder="閫夋嫨璋冨害鏃堕檺"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </div>
+          <el-form-item prop="url" label="鍥剧墖:" min-width="8">
+            <my-upload
+              :picture-list="imageList"
+              :is-show-upload="dialogType !== 'view'"
+              @setPictureUrl="setPictureUrl"
+              @delPictureUrl="delPictureUrl"
+            ></my-upload>
+          </el-form-item>
+
+          <el-form-item prop="url" label="瑙嗛:" min-width="8">
+            <my-upload-media
+              :picture-list="mediaList"
+              :is-show-upload="dialogType !== 'view'"
+              @setPictureUrl="setMediaUrl"
+              @delPictureUrl="delMediaUrl"
+            ></my-upload-media>
+          </el-form-item>
+          <!-- 濉啓鍙嶆槧浜轰俊鎭� -->
+          <el-form-item class="optionItems" label="濉啓鍙嶆槧浜轰俊鎭�">
+          </el-form-item>
+          <!-- 鍙嶆槧浜烘儏鍐� -->
+          <div class="user-item">
+            <el-form-item class="optionItems" label="鍙嶆槧浜�:" prop="informant">
+              <el-input v-model="vio.informant"></el-input>
+            </el-form-item>
+            <el-form-item
+              class="optionItems"
+              label="鑱旂郴鏂瑰紡:"
+              prop="informantPhoneCode"
+            >
+              <el-input v-model="vio.informantPhoneCode"></el-input>
+            </el-form-item>
+          </div>
+          <el-form-item
+            class="optionItems"
+            label="韬唤璇佸彿:"
+            prop="informantIdCard"
+          >
+            <el-input v-model="vio.informantIdCard"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div class="input-footer">
+        <el-button type="primary" class="confirm" @click="handleSubmit"
+          >纭畾</el-button
+        >
+        <el-button class="back" @click="handleBack">杩斿洖</el-button>
+      </div>
     </div>
+    <div class="map-area">
+      <!-- <MyMap /> -->
+    </div>
+  </div>
 </template>
 <script>
-import MyMap from '@/components/map'
+// import MyMap from "@/components/map";
+import MyMap from "@/components/map/leafletMap.vue";
+import {
+  validateName,
+  validatePhone,
+  validateCarNum,
+  validateCardId,
+} from "@/utils/validate";
+import { getTypeList } from "@/utils/helper";
+import { parseTime } from "@/utils/index";
+import { getStoreInfoList } from "@/api/operate/storeManagement";
+import MyUpload from "@/components/myUpload";
+import MyUploadMedia from "@/components/myUpload/media.vue";
+import { FILE_ORIGINAL_URL } from "@/utils";
 export default {
-    components: {
-        MyMap
+  components: {
+    MyMap,
+    MyUpload,
+    MyUploadMedia,
+  },
+  data() {
+    const checkCause = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("妗堢敱涓嶈兘涓虹┖"));
+      }
+    };
+    const checkCategory = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("澶х被鍚嶇О涓嶈兘涓虹┖"));
+      }
+    };
+    const checkCommunity = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("鎵�灞炵ぞ鍖轰笉鑳戒负绌�"));
+      }
+    };
+    const checkDesc = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("闂鎻忚堪涓嶈兘涓虹┖"));
+      }
+    };
+    const checkSite = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("浜嬪彂鍦扮偣涓嶈兘涓虹┖"));
+      }
+    };
+    const checkStreet = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("鎵�灞炶閬撲笉鑳戒负绌�"));
+      }
+    };
+    const checkType = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("灏忕被涓嶈兘涓虹┖"));
+      }
+    };
+    const checkGrade = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("浜嬩欢绛夌骇涓嶈兘涓虹┖"));
+      }
+    };
+    const checkDate = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("鎶ヨ鏃堕棿涓嶈兘涓虹┖"));
+      }
+    };
+    const checkName = (rule, value, callback) => {
+      if (value) {
+        validateName(value)
+          ? callback()
+          : callback(new Error("璇疯緭鍏ユ纭殑濮撳悕"));
+      } else {
+        callback();
+      }
+    };
+    const checkCardId = (rule, value, callback) => {
+      if (value) {
+        validateCardId(value)
+          ? callback()
+          : callback(new Error("璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�"));
+      } else {
+        callback();
+      }
+    };
+    const checkPhone = (rule, value, callback) => {
+      if (value) {
+        validatePhone(value)
+          ? callback()
+          : callback(new Error("璇疯緭鍏ユ纭殑鎵嬫満鍙�"));
+      } else {
+        callback();
+      }
+    };
+    const checkLink = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        if (this.vio.linkShop === 1) {
+          callback(new Error("鍏宠仈鍟嗛摵鍚嶅瓧涓嶈兘涓虹┖"));
+        } else {
+          callback();
+        }
+      }
+    };
+    const checkLimit = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("璋冨害鏃堕檺鏃堕棿涓嶈兘涓虹┖"));
+      }
+    };
+    return {
+      vio: {
+        actionCause: "", //妗堢敱
+        carNumber: "", //杞︾墝鍙�
+        categoryId: "", //澶х被
+        communityId: "", //鎵�灞炵ぞ鍖�
+        description: "", //闂鎻忚堪
+        informant: "", //鍙嶆槧浜�
+        informantIdCard: "", //韬唤璇佸彿鐮�
+        informantPhoneCode: "", //鍙嶆槧浜鸿仈绯绘柟寮�
+        linkShop: 0, //鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
+        shopName: "", //鍏宠仈鍟嗛摵鍚嶇О
+        site: "", //浜嬪彂鍦扮偣
+        streetId: "", //鎵�灞炶閬�
+        typeId: "", //灏忕被
+        gradeId: "", //妗堜欢绛夌骇
+        alarmTime: "",
+        limitTime: "", //璋冨害鏃堕檺
+      },
+      createRoleRules: {
+        //妗堢敱
+        actionCause: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: checkCause,
+          },
+        ],
+        //澶х被
+        categoryId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkCategory,
+          },
+        ],
+        //鎵�灞炵ぞ鍖�
+        communityId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkCommunity,
+          },
+        ],
+        //闂鎻忚堪
+        description: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: checkDesc,
+          },
+        ],
+        informant: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkName,
+          },
+        ],
+        informantIdCard: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkCardId,
+          },
+        ],
+        informantPhoneCode: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkPhone,
+          },
+        ],
+        // linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
+        shopName: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkLink,
+          },
+        ],
+        //浜嬪彂鍦扮偣
+        site: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: checkSite,
+          },
+        ],
+        //鎵�灞炶閬�
+        streetId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkStreet,
+          },
+        ],
+        //灏忕被
+        typeId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkType,
+          },
+        ],
+        //妗堜欢绛夌骇
+        gradeId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkGrade,
+          },
+        ],
+        alarmTime: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkDate,
+          },
+        ],
+        limitTime: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkLimit,
+          },
+        ],
+      },
+      bigKindList: [],
+      smallKindList: [],
+      eventLevelList: [],
+      typeList: [
+        {
+          label: "杩濊",
+          value: 1,
+        },
+        {
+          label: "杩濆缓",
+          value: 2,
+        },
+      ],
+      streetList: [],
+      communityList: [],
+      anYouList: [],
+      storeList: [],
+      imageList: [],
+      mediaList: [],
+      dialogType: "add",
+    };
+  },
+  created() {
+    const { setBigKindList, getStreetList, getEventLevel } = this;
+    this.vio.category = this.mytype + 1;
+    setBigKindList();
+    getStreetList(0);
+    getEventLevel();
+    this.getShopList();
+  },
+  methods: {
+    handleStop() {
+      this.refresh();
     },
-    data() {
-        const validateNickname = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欓棶棰樼被鍨�"));
-            } else {
-                callback();
-            }
-        };
-        const validatePass = (rule, value, callback) => {
-            if (!value) {
-                callback();
-            } else {
-                // const rep = /^\w+$/;
-                // if (!rep.test(value)) {
-                //     callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
-                // }
-                callback();
-            }
-        };
-        const validateTruename = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                // const rep = /^[\u4E00-\u9FA5]{2,4}$/;
-                // if (!rep.test(value)) {
-                //     callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
-                // }
-                callback();
-            }
-        };
-        return {
-            vio: {
-                actionCause: "dasdas",//妗堢敱
-                carNumber: "宸漦123456",//杞︾墝鍙�
-                category: '',//1:杩濊2:杩濆缓
-                categoryId: 0,//澶х被
-                communityId: 0,//鎵�灞炵ぞ鍖�
-                description: "澶ф拻澶ф拻",//闂鎻忚堪
-                informant: "澶ц嫃鎵�",//鍙嶆槧浜�
-                informantIdCard: "51102519910082831",//韬唤璇佸彿鐮�
-                informantPhoneCode: "17844631885",//鍙嶆槧浜鸿仈绯绘柟寮�
-                linkShop: 0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
-                shopName: "",//鍏宠仈鍟嗛摵鍚嶇О
-                site: "灏忓湴鏂�",//浜嬪彂鍦扮偣
-                streetId: 0,//鎵�灞炶閬�
-                typeId: 0//灏忕被
+    // 璁剧疆澶х被
+    async setBigKindList() {
+      this.bigKindList = await this.getBigKind();
+    },
+    // 璁剧疆灏忕被
+    async setSmallKindList(id) {
+      let arr = await this.getSmallKind();
+      this.smallKindList = arr.filter((item) => {
+        if (item.parentId === id) {
+          return item;
+        }
+      });
+    },
+    // 璁剧疆妗堢敱
+    async setAnYouList(id) {
+      let arr = await this.getAnYouList();
+      this.anYouList = arr.filter((item) => {
+        if (item.parentId === id) {
+          return item;
+        }
+      });
+    },
+    // 鏌ヨ澶х被鍒楄〃
+    async getBigKind() {
+      let arr = [];
+      await this.$axios({
+        method: "get",
+        url: "sccg/violations/query/type_second",
+      }).then((res) => {
+        arr = res.data;
+      });
+      return arr;
+    },
+    // 鑾峰彇灏忕被鍒楄〃
+    async getSmallKind() {
+      let arr = [];
+      await this.$axios({
+        method: "get",
+        url: "sccg/violations/query/type_third",
+      }).then((res) => {
+        arr = res.data;
+      });
+      return arr;
+    },
+    // 鑾峰彇妗堜欢绛夌骇鍒楄〃
+    async getEventLevel() {
+      this.eventLevelList = await getTypeList(1, "02");
+    },
+    // 鏌ヨ鎵�灞炴鐢�
+    async getAnYouList() {
+      let arr = [];
+      await this.$axios({
+        method: "get",
+        url: "sccg/violations/query/type_four",
+      }).then((res) => {
+        arr = res.data;
+      });
+      return arr;
+    },
+    // 鎻愪氦娉ㄥ唽淇℃伅
+    handleSubmit() {
+      this.vio.imageUrls = this.imageList;
+      this.vio.videoUrls = this.mediaList;
+      this.$refs.user.validate((valid) => {
+        if (valid) {
+          const { vio } = this;
+          this.$axios({
+            method: "post",
+            url: "sccg/base_case/addition_violation",
+            data: {
+              ...vio,
+              alarmTime: parseTime(vio.alarmTime),
+              limitTime: parseTime(vio.limitTime),
             },
-            createRoleRules: {
-                name: [
-                    { required: true, trigger: "blur", validator: validateNickname },
-                ],
-                type: [
-                    { required: false, trigger: "blur", validator: validatePass },
-                ],
-                description: [
-                    { required: false, trigger: "blur", validator: validateTruename },
-                ],
-            },
-            bigKindList: [],
-            smallKindList: [],
-            eventLevelList: [],
-            typeList: [
-                {
-                    label: '杩濊',
-                    value: 1.
-                },
-                {
-                    label: '杩濆缓',
-                    value: 2.
-                }
-            ]
+          }).then((res) => {
+            if (res.code === 200) {
+              this.$message({
+                type: "success",
+                message: res.message,
+              });
+              this.$emit("changeDialog", { flag: false });
+              this.refresh();
+            } else {
+              this.$message({
+                type: "warning",
+                message: res.message,
+              });
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    // 杩斿洖
+    handleBack() {
+      this.$emit("changeDialog", { flag: false });
+    },
+    // 鑾峰彇琛楅亾淇℃伅
+    async getStreetList(id) {
+      let arr;
+      await this.$axios({
+        method: "get",
+        url: `sccg/sccg_region/getChildren/${id}`,
+      }).then((res) => {
+        if (res.code === 200) {
+          arr = res.data;
+        }
+      });
+      this.streetList = arr;
+    },
+    // 琛楅亾鏇存敼
+    handleStreet(id) {
+      this.vio.communityId = "";
+      this.$axios({
+        method: "get",
+        url: `sccg/sccg_region/getChildren/${id}`,
+      }).then((res) => {
+        this.communityList = res.data;
+      });
+    },
+    // 鍏宠仈鍟嗛摵
+    handleLinkShop(value) {
+      value === 0 ? (this.vio.shopName = "") : "";
+    },
+    // 澶х被閫変腑
+    handleBigKindChange(id) {
+      this.vio.actionCause = "";
+      this.vio.typeId = "";
+      this.setSmallKindList(id);
+    },
+    // 灏忕被閫変腑
+    handleSmallKindChange(id) {
+      this.vio.actionCause = "";
+      this.setAnYouList(id);
+    },
+    // 妗堢敱杈撳叆
+    selectBlur(e) {
+      if (e.target.value) {
+        this.vio.actionCause = e.target.value;
+      }
+    },
+    setPictureUrl({ url }) {
+      this.imageList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`);
+    //   this.imagedata.url = this.imageList.join(",");
+    },
+    delPictureUrl({ url }) {
+      this.imageList = this.imageList.filter((item) => item !== url);
+    //   this.imagedata.url = this.imageList.join(",");
+    },
 
-        }
+    setMediaUrl({ url }) {
+      this.mediaList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`);
+      this.mediaList.url = this.mediaList.join(",");
     },
-    created() {
-        const { getBigKind, getEventLevel, getSmallKind } = this;
-        console.log(this.mytype);
-        this.vio.category = this.mytype + 1;
-        getBigKind();
-        getSmallKind();
-        getEventLevel();
+    delMediaUrl({ url }) {
+      this.mediaList = this.mediaList.filter((item) => item !== url);
+      this.mediaList.url = this.mediaList.join(",");
     },
-    methods: {
-        // handleUser() {
-        //     this.$refs['user'].validate((valid) => {
-        //         console.log(valid);
-        //         if (valid) {
-        //             const { role } = this;
-        //             console.log(role);
-        //             this.$axios.post('sccg/role/create', {
-        //                 description: role.description, name: role.name, type: role.type
-        //             }).then(res => {
-        //                 if (res.code === 200) {
-        //                     this.refresh();
-        //                 }
-        //             })
-        //         } else {
-        //             return false;
-        //         }
-        //     })
-        // },
-        handleStop() {
-            this.refresh();
-        },
-        // 鑾峰彇澶х被鍒楄〃
-        getBigKind() {
-            this.$axios({
-                method: 'get',
-                url: 'sccg/violations/query/type_first'
-            }).then(res => {
-                this.bigKindList = res.data;
-                // console.log(res);
-            })
-        },
-        // 鑾峰彇灏忕被鍒楄〃
-        getSmallKind() {
-            this.$axios({
-                method: 'get',
-                url: 'sccg/violations/query/type_second'
-            })
-                .then(res => {
-                    this.smallKindList = res.data;
-                })
-        },
-        // 鑾峰彇妗堜欢绛夌骇鍒楄〃
-        getEventLevel() {
-            this.$axios({
-                method: 'get',
-                url: 'sccg/violations/query/event_type'
-            })
-                .then(res => {
-                    this.eventLevelList = res.data;
-                })
-        },
-        // 鑾峰彇琛屾斂鍖哄煙
-        getRegion() {
-            this.$axios({
-                method: 'get',
-                url: 'sccg/sccg-region/getTree',
-            })
-                .then(res => {
-                    // this.
-                })
-        },
-        // 鎻愪氦娉ㄥ唽淇℃伅
-        handleSubmit() {
-            const { vio } = this;
-            console.log(vio);
-            this.$axios({
-                method:'post',
-                url:'sccg/base-case/addition_violation',
-                data:vio
-            })
-            .then(res=>{
-                console.log(res);
-            })
-            // this.$axios.post('sccg/role/create', {
-            //     description: role.description, name: role.name, type: role.type
-            // }).then(res => {
-            //     if (res.code === 200) {
-            //         this.refresh();
-            //     }
-            // })
-        }
+    getShopList() {
+      getStoreInfoList({ current: 1, size: 100 })
+        .then(({ list }) => {
+          this.storeList = list;
+        })
+        .catch((err) => {
+          this.$message.error(err);
+        });
     },
-    props: ['mytype']
-}
+  },
+  props: ["mytype", "changeDialog", "refresh"],
+};
 </script>
 <style lang="scss" scoped>
 .vio {
-    display: flex;
+  display: flex;
+  padding: 20px 10px 50px;
 
-    .input-area {
-        flex: 1;
-        padding: 10px 20px;
+  .input-area {
+    flex: 3;
+    padding: 10px 20px;
 
-        .input-header {
-            color: #4b9bb7;
+    .input-header {
+      color: #4b9bb7;
 
-            .input-header__title {
-                line-height: 60px;
-                font-weight: 650;
-                font-size: 20px;
-            }
+      .input-header__title {
+        line-height: 60px;
+        font-weight: 650;
+        font-size: 20px;
+      }
 
-            .input-header__tip {
-                line-height: 40px;
-            }
-        }
-
-        .input-form {
-            .el-form {
-                &::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;
-                }
-            }
-        }
-
-        .input-footer {
-            display: flex;
-            justify-content: center;
-        }
+      .input-header__tip {
+        line-height: 40px;
+      }
     }
 
-    .map-area {
-        flex: 1;
+    .user-item {
+      display: flex;
+      justify-content: space-between;
     }
 
-    .not-need {
-        color: #4b9bb7;
+    .input-form {
+      .el-form {
+        // &::v-deep .el-form-item__label {
+        //     color: #4b9bb7;
+        // }
 
-        .not-need__header {
-            line-height: 40px;
-        }
+        // &::v-deep .el-input__inner {
+        //     // background-color: #09152f;
+        //     border: 1px solid #17324c;
+        // }
 
-        .not-need-item {
-            line-height: 40px;
-            margin-bottom: 22px;
-            display: flex;
-
-            label {
-                width: 100px;
-                padding-right: 12px;
-                text-align: right;
-            }
-
-            .not-need__inner {
-                flex: 1;
-                line-height: 40px;
-                padding: 0 15px;
-                border-radius: 4px;
-                color: #fff;
-                // outline: #409eff solid 1px;
-                outline: none;
-                background-color: #09152f;
-                border: 1px solid #17324c;
-            }
-        }
+        // &::v-deep .el-textarea__inner {
+        //     // background-color: #09152f;
+        //     border: 1px solid #17324c;
+        // }
+      }
     }
 
+    .input-footer {
+      display: flex;
+      justify-content: center;
+    }
+  }
+
+  .map-area {
+    flex: 2;
+  }
+
+  .anyou {
+    :deep(.el-select) {
+      display: block;
+    }
+  }
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0