瀏覽代碼

Merge branch 'master' of http://123.57.226.179:8080/yin_yu820/HS_MZAP

guoqing 2 年之前
父節點
當前提交
f38887dda1

+ 8 - 1
src/api/sys/tools.js

@@ -22,7 +22,14 @@ export default class Tools {
             `/religioussites/fire/fireEquipment/list`,
             params
         )
-    };    
+    };  
+    //非宗教类组织列表
+    NonReligiousInformationOrgList(params) {
+        return request.get(
+            `/zjzz/religion/listByGrid`,
+            params
+        )
+    };  
     // 文件上传
     uploadFile(formData, uploadPath) {
         return request.uploadFile(

+ 20 - 3
src/views/activityMan/nonReligiousInformation/nonReligiousInformationInfo.vue

@@ -9,14 +9,14 @@
       </div>
       <div class="info">
         <p>非宗教类别:{{ getCategories(info.nonReligiousCategories) }}</p>
-        <p>组织名称:{{ info.siteName.name }}</p>
+        <p>组织名称:{{ info.siteName.organizationName }}</p>
         <p>时&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间:{{ info.reportingTime }}</p>
         <p>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;点:{{ info.placeSelectName }}</p>
         <p>详细地址:{{ info.placeDetailed }}</p>
         <p>事件概述:{{ info.eventOverview }}</p>
         <p>事件内容:{{ info.eventContent }}</p>
       </div>
-      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+      <van-button v-if="canAudit" type="primary" class="btn-sub" @click="update">审核</van-button>
     </div>
   </template>
     
@@ -27,7 +27,7 @@
   import { useRoute } from "vue-router";
   export default {
     setup() {
-      window.xm.setNavigationBarTitle({ title: '其他有害信息详情'})
+      //window.xm.setNavigationBarTitle({ title: '其他有害信息详情'})
       let isLoading = ref(true);
       let canAudit = ref(false);
       // 活动信息
@@ -45,6 +45,20 @@
         isLoading.value = false;
       });
 
+      // 审核通过
+      const update = () => {
+        isLoading.value = true;
+        info.value.assessment = 1;
+        new nonReligiousInformationService().save(info.value).then((res) => {
+          console.log(res);
+          isLoading.value = false;
+          window.xm.showToast({
+             message:"审核成功!"
+          })
+          history.back();
+        });
+      };
+
         //字典配置
         const getCategories= (key ) => {
             let re="";
@@ -92,10 +106,13 @@
             return re;
         };
 
+        
+
       return {
         info,
         isLoading,
         canAudit,
+        update,
         getCategories,
       };
     },

+ 441 - 4
src/views/activityMan/nonReligiousInformation/nonReligiousInformationView.vue

@@ -1,6 +1,443 @@
 <template>
-    <div class="about">
-      <h1>This is an about page</h1>
+  <van-nav-bar
+    fixed
+    title="信息上报中心"
+    left-text=""
+    left-arrow
+    @click-left="onClickLeft"
+  />
+  <van-loading size="16px" v-show="isLoading">加载中...</van-loading>
+  <div class="main" v-show="!isLoading">
+    <p class="title">非宗教类信息上报</p>
+    <div class="formArea">
+      <p class="miniTitle">基础信息</p>
+
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.nonReligiousCategoriesname"
+          readonly
+          required
+          label="非宗教类别:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showCategories = true"
+        />
+        <van-popup v-model:show="showCategories" round position="bottom">
+          <van-picker
+            title="选择非宗教类别"
+            :columns="Categories"
+            :columns-field-names="customFieldName"
+            @cancel="showCategories = false"
+            @confirm="getCategories"
+          />
+        </van-popup>
+      </van-cell-group>
+
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.siteName.name"
+          readonly
+          required
+          label="组织名称:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showOrganizations = true"
+        />
+        <van-dialog
+          v-model:show="showOrganizations"
+          title="选择组织名称"
+          show-cancel-button
+          @confirm="reselected2"
+        >
+          <organizations-list @selected="selected2" :type="1"></organizations-list>
+        </van-dialog>
+      </van-cell-group>
+
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.reportingTime"
+          center
+          readonly
+          label="时间:"
+          placeholder="请选择时间"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showAct = true"
+        />
+        <van-popup v-model:show="showAct" round position="bottom">
+          <van-picker-group
+            :tabs="['选择日期', '选择时间']"
+            next-step-text="下一步"
+            @confirm="getTime"
+            @cancel="showAct = false"
+          >
+            <van-date-picker v-model="currentDate" />
+            <van-time-picker
+              v-model="currentTime"
+              :columns-type="columnsType"
+            />
+          </van-picker-group>
+        </van-popup>
+      </van-cell-group>
+
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.placeSelectName"
+          center
+          readonly
+          label="地点:"
+          placeholder="请选择"
+          input-align="right"
+          right-icon="arrow-down"
+          @click="showArea = true"
+        />
+        <van-popup v-model:show="showArea" round position="bottom">
+          <van-cascader
+            v-model="cascaderValue"
+            title="请选择所在地区"
+            :options="options"
+            @close="showArea = false"
+            @finish="onFinish"
+            :field-names="fieldNames"
+          />
+        </van-popup>
+      </van-cell-group>
+
+      <van-cell-group>
+        <van-field
+          v-model="inputForm.placeDetailed"
+          center
+          label="详细地址:"
+          placeholder="请填写具体地址"
+          input-align="right"
+          right-icon="location"
+        />
+      </van-cell-group>
+
+      <van-cell-group>
+        <van-field label="事件内容:" label-align="top">
+          <template #input>
+            <wang-editor ref="contentEditor" v-model="inputForm.eventContent" />
+          </template>
+        </van-field>
+      </van-cell-group>
+
+      <!-- <van-cell-group>
+        <van-field
+          v-model="inputForm.eventOverview"
+          center
+          label="事件概述:"
+          placeholder="请填写事件概述"
+          input-align="right"
+          right-icon="location"
+        />
+      </van-cell-group> -->
+
+      <van-cell-group>
+        <div class="rowTextArea">
+          <van-field
+            v-model="inputForm.eventOverview"
+            center
+            rows="1"
+            type="textarea"
+            label="事件概述:"
+            label-align="top"
+          />
+        </div>
+      </van-cell-group>
     </div>
-  </template>
-  
+    <div class="subbtn">
+      <van-button type="primary" @click="submit">提交</van-button>
+      <van-button type="default" hairline>取消</van-button>
+    </div>
+  </div>
+</template>
+
+  <script>
+import { ref, onMounted } from "vue";
+import personList from "../personList.vue";
+import organizationsList from "../organizationsList.vue";
+import tools from "@/api/sys/tools";
+import nonReligiousInformationService from "@/api/nonReligiousInformation/nonReligiousInformationService";
+import UserManage from "@/api/user/UserManage";
+import { useRoute } from "vue-router";
+// 富文本编辑器
+import WangEditor from "@/components/editor/WangEditor";
+export default {
+  components: { personList, WangEditor,organizationsList },
+  setup() {
+    // 加载
+    let isLoading = ref(true);
+    // 返回
+    const onClickLeft = () => {
+      history.back();
+    };
+    //信息
+    let inputForm = ref({
+      id: "",
+      nonReligiousCategoriesname: "",
+      nonReligiousCategories: "",
+      siteName: {
+        id: "",
+        name: "",
+      },
+      place: "320900",
+      placeSelectName: "盐城市",
+      placeSelectType3: "320900",
+      placeSelectType4: "",
+      placeSelectType5: "",
+      placeSelectType6: "",
+      placeDetailed: "",
+      reportingTime: "",
+      participants: {
+        id: "",
+        name: "",
+      },
+      eventContent: "",
+      state: "0",
+      assessment: "0",
+      eventOverview: "",
+    });
+    const contentEditor = ref(null);
+    let route = useRoute();
+    onMounted(() => {
+      // 根据路由初始化
+      if (route.query.id) {
+        new nonReligiousInformationService()
+          .queryById(route.query.id)
+          .then((data) => {
+            inputForm.value = data;
+            let ids = data.participants.id.split(",");
+            inputForm.value.participants.name = "";
+            ids.forEach((item) => {
+              new UserManage().queryById(item).then((data) => {
+                inputForm.value.participants.name += data.name + ",";
+              });
+            });
+            contentEditor.value.init(inputForm.value.eventContent);
+            isLoading.value = false;
+          });
+      } else {
+        contentEditor.value.init(inputForm.value.eventContent);
+        isLoading.value = false;
+      }
+    });
+
+
+    // 非宗教类别
+    let showCategories = ref(false);
+    let Categories = ref([{"name":"宗教组织","id":"1"},{"name":"邪教组织","id":"10"},{"name":"地下神学院","id":"11"},{"name":"地下教会","id":"2"},
+    {"name":"韩美境外渗透组织","id":"3"},{"name":"本地精神控制类有害培训机构","id":"4"},{"name":"“呼喊派”骨干组织","id":"5"},
+    {"name":"“改革宗”地下教会组织","id":"6"},{"name":"藏传佛教本地组织","id":"7"},{"name":"学生传教组织","id":"8"},
+    {"name":"“义诊医疗”地下教会组织","id":"9"},{"name":"“亚文化”传教组织","id":"91"},{"name":"重点公司组织","id":"92"},]);
+    const customFieldName = {
+      text: "name",
+      value: "id",
+    };
+    const getCategories = ({ selectedOptions }) => {
+      showCategories.value = false;
+      inputForm.value.nonReligiousCategories = selectedOptions[0].id;
+      inputForm.value.nonReligiousCategoriesname = selectedOptions[0].name;
+      console.log(selectedOptions[0]);
+      console.log(selectedOptions[0].name);
+      //类别选择完成后刷新
+      //getVideoAudioList();
+    };
+
+
+
+
+    //组织名称
+    let showOrganizations = ref(false);
+    let list2 = {
+      value: [],
+      type: "",
+    };
+    const selected2 = (val, type) => {
+      list2.value = val;
+      list2.type = type;
+    };
+    const reselected2 = () => {
+      let ids = [];
+      let names = [];
+      if (list2.type == 1) {
+        list2.value.forEach((item) => {
+          ids.push(item.id);
+          names.push(item.organizationName);
+        });
+        inputForm.value.siteName.id = ids.join(",");
+        inputForm.value.siteName.name = names.join(",");
+      }
+    };
+
+
+    // 获取活动时间
+    let showAct = ref(false);
+    let currentDate = ref(["" + new Date().getFullYear(), "01", "01"]);
+    let currentTime = ref(["00", "00", "00"]);
+    const columnsType = ["hour", "minute", "second"];
+    const getTime = () => {
+      showAct.value = false;
+      inputForm.value.reportingTime = `${currentDate.value.join(
+        "-"
+      )} ${currentTime.value.join(":")}`;
+    };
+
+    // 地区选择
+    let showArea = ref(false);
+    const cascaderValue = ref("");
+    const fieldNames = {
+      text: "name",
+      value: "code",
+      children: "children",
+    };
+    // 选项列表,children 代表子选项,支持多级嵌套
+    let options = ref([]);
+    new tools().treeData().then((res) => {
+      options.value.push(res[0]);
+    });
+    // 全部选项选择完毕后,会触发 finish 事件
+    const onFinish = ({ selectedOptions }) => {
+      showArea.value = false;
+      inputForm.value.placeSelectName = selectedOptions
+        .map((option) => option.name)
+        .join("/");
+        console.log("选择地区:"+selectedOptions);
+
+        inputForm.value.place = selectedOptions
+        .map((option) => option.id)
+        .join("/");
+
+        inputForm.value.placeSelectType3= selectedOptions[0].id;
+        inputForm.value.placeSelectType4= selectedOptions[1].id;
+        inputForm.value.placeSelectType5= selectedOptions[2].id;
+        console.log("11:"+inputForm.value);
+
+        //inputForm.value.placeSelectType6= selectedOptions[2].id,
+
+    };
+    const submit = () => {
+      isLoading.value = true;
+      new nonReligiousInformationService().save(inputForm.value).then((res) => {
+        if(res.data=="保存非宗教类信息上报成功"){
+          window.xm.showToast({
+             message:"保存成功!"
+          })
+          onClickLeft();
+        isLoading.value = false;
+        }
+      });
+    };
+    return {
+      isLoading,
+      inputForm,
+      //非宗教类别
+      showCategories,
+      Categories,
+      customFieldName,
+      getCategories,
+      //组织名称
+      showOrganizations,
+      selected2,
+      reselected2,
+      // 活动时间
+      showAct,
+      currentDate,
+      currentTime,
+      columnsType,
+      getTime,
+      // 返回
+      onClickLeft,
+
+      // 地区选择
+      showArea,
+      fieldNames,
+      options,
+      onFinish,
+      cascaderValue,
+      contentEditor,
+      // change,
+      submit,
+    };
+  },
+};
+</script>
+
+  <style scoped>
+* {
+  margin: 0;
+  padding: 0;
+}
+.main {
+  background: #fff;
+  position: relative;
+  top: 40px;
+}
+.title,
+.miniTitle {
+  height: 40px;
+  line-height: 40px;
+  color: #36a7f3;
+  border-bottom: 1px solid #eee;
+}
+.title {
+  font-size: 20px;
+  font-weight: 700;
+  padding-left: 20px;
+}
+.miniTitle {
+  font-size: 16px;
+}
+.formArea {
+  padding: 0px 20px;
+}
+.formArea .van-cell-group .van-field__label {
+  height: 40px;
+}
+.formArea .van-cell-group .van-cell {
+  line-height: 40px;
+}
+.van-cell__value .van-field__right-icon .van-icon-location {
+  color: #36a7f3 !important;
+}
+#editor {
+  position: relative;
+  height: 200px;
+}
+.w-e-text-container {
+  height: 150px !important;
+}
+.subbtn {
+  margin: 20px;
+  text-align: center;
+}
+.subbtn .van-button {
+  width: 40%;
+  margin: 5px;
+}
+.van-uploader .van-button {
+  border: none;
+  color: #36a7f3;
+  top: -4px;
+}
+.van-dialog {
+  width: 80%;
+  top: 50%;
+}
+.van-loading {
+  text-align: center;
+  margin-top: 80px;
+}
+
+.rowTextArea::v-deep .van-field__value {
+  width: 94%;
+  border: 2px solid #ccc;
+  border-radius: 10px;
+  padding: 10px;
+}
+.rowTextArea::v-deep .van-cell {
+  display: flow-root;
+}
+</style>

+ 164 - 0
src/views/activityMan/organizationsList.vue

@@ -0,0 +1,164 @@
+<template>
+    <div class="siteList">
+      <van-search
+        v-model="value"
+        show-action
+        placeholder="请输入搜索关键词"
+        @search="onSearch"
+        @cancel="onCancel"
+      />
+      <van-list
+        v-model:loading="loading"
+        :finished="finished"
+        finished-text="没有更多了"
+        @load="onLoad"
+      >
+        <van-checkbox-group
+          v-if="type == 1"
+          v-model="checked"
+          ref="checkboxGroup"
+        >
+          <van-button type="primary" size="mini" @click="checkAll"
+            >全选</van-button
+          >
+          <van-cell-group inset>
+            <van-cell
+              v-for="(item, index) in list"
+              clickable
+              :key="item"
+              :title="item.organizationName"
+              @click="toggle(index)"
+            >
+              <template #right-icon>
+                <van-checkbox
+                  shape="square"
+                  :name="item"
+                  :ref="(el) => (checkboxRefs[index] = el)"
+                />
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </van-checkbox-group>
+        <van-radio-group v-if="type == 0" v-model="checked">
+          <van-cell-group inset>
+            <van-cell
+              v-for="item in list"
+              clickable
+              :key="item"
+              :title="item.organizationName"
+              @click="selectes(item)"
+            >
+              <template #right-icon>
+                <van-radio :name="item" />
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </van-radio-group>
+      </van-list>
+    </div>
+  </template>
+  
+  <script>
+  import { ref } from "vue";
+  import tools from "@/api/sys/tools";
+  export default {
+    name: "organizationsList",
+    emits: ["selected"],
+    props: ["type"],
+    setup(props, { emit }) {
+      const list = ref([]);
+      const loading = ref(false);
+      const finished = ref(false);
+      let index = 0;
+      const onLoad = () => {
+        // 异步更新数据
+        new tools()
+        .NonReligiousInformationOrgList({
+            current: index + 1,
+            size: 10,
+            organizationType:1,//这边加筛选值
+        })
+        .then(({ records }) => {
+            list.value.push(...records);
+            // 加载状态结束
+            loading.value = false;
+            index++;
+            // 数据全部加载完成
+            if (records.length < 10) {
+              finished.value = true;
+            }
+        });
+        
+      };
+      // 搜索
+      const value = ref("");
+      const onSearch = (val) => showToast(val);
+      const onCancel = () => showToast("取消");
+      // 选择组织
+      const checked = ref([]);
+      const checkboxRefs = ref([]);
+      const checkboxGroup = ref(null);
+      const toggle = (index) => {
+        checkboxRefs.value[index].toggle();
+        emit("selected", checked.value, 1);
+      };
+      // 全选
+      const checkAll = () => {
+        checkboxGroup.value.toggleAll(true);
+        emit("selected", checked.value, 1);
+      };
+      const selectes = (val) => {
+        checked.value = val;
+        //console.log(props.type);
+        //console.log(111);
+        emit("selected", checked.value, 0);
+      };
+  
+      return {
+        // 场所
+        list,
+        onLoad,
+        loading,
+        finished,
+        // 搜索
+        value,
+        onSearch,
+        onCancel,
+        // 全选
+        checkAll,
+        toggle,
+        checked,
+        checkboxRefs,
+        checkboxGroup,
+        // 单选
+        selectes,
+      };
+    },
+  };
+  </script>
+  
+  <style scoped>
+  .siteList {
+    height: 65vh;
+    overflow: auto;
+    margin: 10px;
+  }
+  .van-button {
+    top: -5px;
+  }
+  .search {
+    height: 40px;
+    line-height: 40px;
+  }
+  .van-list {
+    height: 80%;
+    margin-top: 5px;
+  }
+  .keyword {
+    width: 70%;
+    height: 25px;
+    border-radius: 25px;
+    border: 1px solid;
+    padding-left: 15px;
+  }
+  </style>

+ 38 - 5
src/views/activityMan/religiousConference/religiousConferenceInfo.vue

@@ -14,9 +14,14 @@
         <p>会议场所:{{ info.siteName.name }}</p>
         <p>参会人员:{{ info.participants.name }}</p>
         <p>附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:<span style="color: #6892ff">活动申请书</span></p>
-        <p>会议议题:{{ info.meetingTopics }}</p>
+        <!-- <p>会议议题:{{ info.meetingTopics }}</p> -->
+        <p>会议议题:</p>
+          <wang-editor
+            ref="subjectContentEditor"
+            v-model="info.meetingTopics"
+          />
       </div>
-      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+      <van-button v-if="canAudit" type="primary" class="btn-sub" @click="update">审核</van-button>
     </div>
   </template>
     
@@ -25,14 +30,20 @@
   import religiousConferenceService from "@/api/religiousConference/religiousConferenceService";
   import UserManage from "@/api/user/UserManage";
   import { useRoute } from "vue-router";
+  // 富文本编辑器
+  import WangEditor from "@/components/editor/WangEditor";
   export default {
+    components: { WangEditor },
     setup() {
-      window.xm.setNavigationBarTitle({ title: '负责人会议详情'})
+      //window.xm.setNavigationBarTitle({ title: '负责人会议详情'})
       let isLoading = ref(true);
       let canAudit = ref(false);
       // 活动信息
-      const info = ref({        
+      const info = ref({     
+        meetingTopics:"",   
       });
+      // 富文本
+      let subjectContentEditor = ref(null);
       let route = useRoute();
       new religiousConferenceService().queryById(route.query.id).then((data) => {
         info.value = data;
@@ -41,13 +52,30 @@
         }else{
           canAudit.value = false;
         }      
-
+        console.log(info.value.meetingTopics);
+        //这边报错?
+        //subjectContentEditor.value.init(info.value.meetingTopics);
         isLoading.value = false;
       });
+      // 审核通过
+      const update = () => {
+        isLoading.value = true;
+        info.value.assessment = 1;
+        new religiousConferenceService().save(info.value).then((res) => {
+          console.log(res);
+          isLoading.value = false;
+          window.xm.showToast({
+             message:"审核成功!"
+          })
+          history.back();
+        });
+      };
       return {
         info,
         isLoading,
         canAudit,
+        update,
+        subjectContentEditor,
       };
     },
   };
@@ -95,4 +123,9 @@
     text-align: center;
     margin-top: 80px;
   }
+  #editor {
+  width: 100%;
+  height: 150px;
+  overflow: hidden;
+  }
   </style>

+ 15 - 1
src/views/activityMan/securityFacilitiesErr/securityFacilitiesErrInfo.vue

@@ -17,7 +17,7 @@
         <p>附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:<span style="color: #6892ff">活动申请书</span></p>
         <p>异常内容:{{ info.abnormalContent }}</p>
       </div>
-      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+      <van-button v-if="canAudit" type="primary" class="btn-sub" @click="update">审核</van-button>
     </div>
   </template>
     
@@ -45,9 +45,23 @@
 
         isLoading.value = false;
       });
+      // 审核通过
+      const update = () => {
+        isLoading.value = true;
+        info.value.assessment = 1;
+        new securityFacilitiesErrService().save(info.value).then((res) => {
+          console.log(res);
+          isLoading.value = false;
+          window.xm.showToast({
+             message:"审核成功!"
+          })
+          history.back();
+        });
+      };
       return {
         info,
         isLoading,
+        update,
         canAudit,
       };
     },

+ 15 - 1
src/views/activityMan/siteInspection/siteInspectionInfo.vue

@@ -15,7 +15,7 @@
         <p>附&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件:<span style="color: #6892ff">活动申请书</span></p>
         <p>督查内容:{{ info.supervisionContent }}</p>
       </div>
-      <van-button v-if="canAudit" type="primary" class="btn-sub">审核</van-button>
+      <van-button v-if="canAudit" type="primary" class="btn-sub" @click="update">审核</van-button>
     </div>
   </template>
     
@@ -44,9 +44,23 @@
 
         isLoading.value = false;
       });
+      // 审核通过
+      const update = () => {
+        isLoading.value = true;
+        info.value.assessment = 1;
+        new siteInspectionService().save(info.value).then((res) => {
+          console.log(res);
+          isLoading.value = false;
+          window.xm.showToast({
+             message:"审核成功!"
+          })
+          history.back();
+        });
+      };
       return {
         info,
         isLoading,
+        update,
         canAudit,
       };
     },