소스 검색

Merge branch '银行根据配置来' of sckj/mz-cloud into master

sckj 2 일 전
부모
커밋
4281b2f7d6

+ 118 - 1
ruoyi-ui-gljt/src/layout/components/Navbar.vue

@@ -69,7 +69,8 @@ import RuoYiGit from "@/components/RuoYi/Git";
 import RuoYiDoc from "@/components/RuoYi/Doc";
 import Logo from "../../layout/components/Sidebar/Logo";
 import { decryptData_ECB, decryptRowData_ECB } from "@/api/tool/sm4";
-
+import mqtt from 'mqtt'
+import { getUuid } from '@/utils'
 export default {
   components: {
     Breadcrumb,
@@ -82,6 +83,27 @@ export default {
     RuoYiGit,
     RuoYiDoc,
   },
+  data(){
+    return{
+      client:'',
+      options: {
+        connectTimeout: 6000, // 超时时间
+        clientId: '',
+        // endpoint: "/mqtt",
+        // host: "jdgl.ccsckj.com",
+        // port: 443,
+        username: "admin", // 用户名
+        password: "sckj@2023", // 密码
+        cleanSession: false,
+        // clean: false,   // 保留会话(避免重复订阅)
+        keepAlive: 60, // 心跳值,心跳值太大可能会连接不成功,这个参考文档
+      },
+      subscription: {
+        topic: "/Radar60FL/#",
+        qos: 0,
+      },
+    }
+  },
   computed: {
     ...mapGetters(["sidebar", "avatar", "device"]),
     ...mapState(["user"]),
@@ -106,9 +128,104 @@ export default {
     },
   },
   mounted() {
+    this.options.clientId="znyl_" + getUuid();
     // console.log(this.user);
+    let levelData=0;
+    let ancestors=this.user.userData.dept.ancestors;
+    if(ancestors)
+    {
+      levelData=ancestors.split(',').length
+    }
+    console.log(levelData,'levelData');
+    if(levelData===4)
+    {
+      this.createConnection();
+    }
+
+  },
+  destroyed() {
+    if (this.client.end)
+    {
+      console.log('中断连接')
+      this.client.end();
+    }
   },
   methods: {
+    createConnection() {
+      console.log("正在连接...");
+      try {
+        this.client = mqtt.connect(
+          // "wss://121.36.73.159:8083/mqtt",
+          "wss://jdgl.ccsckj.com/mqtt",
+          // "ws://121.36.73.159:8083/mqtt",
+          this.options
+        );
+      } catch (error) {
+        console.log("mqtt连接失败: ", error);
+      }
+      this.client.on("connect", (e) => {
+        console.log("连接成功");
+        this.doSubscribe(); // 订阅主题
+      });
+
+      // 接收消息处理
+      this.client.on('message', this.message_str)
+      // this.client.on("message",(topic, message) => {
+      //   //监听消息函数
+      //   console.log("收到来自主题:" + topic + "的消息:" + message.toString());
+      //   // var messageTextArea = document.getElementById("messageTextArea");					//获取textarea元素
+      //   // messageTextArea.value += "收到来自主题:"+topic+"的消息:"+message.toString()+"\n"; 	//将新的文本追加到 value
+      //   if (topic.includes("sys/property/post")) {
+      //     let msgobj = JSON.parse(message.toString());
+      //     this.$store.dispatch('mqtt/getMqttParams',msgobj)
+      //   }
+      // });
+      // 连接错误处理
+      this.client.on("error", (error) => {
+        if (this.client) {
+          this.client.end();
+        }
+        console.log("连接出错: ", error);
+      });
+      // 重新连接处理
+      // this.client.on('reconnect', () => {
+      //   console.log('重新连接...')
+      // })
+      // 断线重连
+      this.client.on("reconnect", (error) => {
+        console.log("正在重连:", new Date().getTime(), error);
+        console.log(this.options.clientId,'this.options.clientId');
+      });
+      this.client.on("close", () => {
+        console.log("监听断开连接");
+      });
+    },
+    message_str(topic, message) {
+      //监听消息函数
+      console.log("收到来自主题:" + topic + "的消息:" + message.toString());
+      // var messageTextArea = document.getElementById("messageTextArea");					//获取textarea元素
+      // messageTextArea.value += "收到来自主题:"+topic+"的消息:"+message.toString()+"\n"; 	//将新的文本追加到 value
+      if (topic.includes("sys/property/post")) {
+        let msgobj = JSON.parse(message.toString());
+        this.$store.dispatch('mqtt/getMqttParams',msgobj)
+      }
+    },
+    // 订阅
+    doSubscribe() {
+      // console.log(this.currentCode,'区划编码');
+      // console.log(this.user.jgId,'this.user');
+      this.subscription.topic = "/Radar60FL/" + this.options.clientId + "/#";
+      const { topic, qos } = this.subscription;
+      let that=this;
+      this.client.subscribe(topic, qos, (error) => {
+        if (!error) {
+          that.$store.dispatch('mqtt/getClientId',that.options.clientId)
+          console.log("订阅成功");
+        } else {
+          console.log("订阅失败");
+        }
+      });
+    },
     toggleSideBar() {
       this.$store.dispatch("app/toggleSideBar");
     },

+ 3 - 1
ruoyi-ui-gljt/src/store/index.js

@@ -1,6 +1,7 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
 import app from './modules/app'
+import mqtt from './modules/mqtt'
 import dict from './modules/dict'
 import user from './modules/user'
 import tagsView from './modules/tagsView'
@@ -17,7 +18,8 @@ const store = new Vuex.Store({
     user,
     tagsView,
     permission,
-    settings
+    settings,
+    mqtt
   },
   getters
 })

+ 26 - 0
ruoyi-ui-gljt/src/store/modules/mqtt.js

@@ -0,0 +1,26 @@
+const state = {
+  mqttParams: null,
+  clientId:null,
+}
+const mutations = {
+  MQTT_PARAMS: (state, data) => {
+  state.mqttParams = data
+},
+  CLIENT_ID: (state, data) => {
+    state.clientId = data
+  }
+}
+const actions = {
+  getMqttParams({ commit }, data) {
+    commit('MQTT_PARAMS', data)
+  },
+  getClientId({ commit }, data) {
+    commit('CLIENT_ID', data)
+  }
+}
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions
+}

+ 157 - 4
ruoyi-ui-gljt/src/views/gljt/gljtSq/index.vue

@@ -1357,7 +1357,21 @@ export default {
     sqXq,
   },
   computed: {
-    ...mapState(["user"]),
+    ...mapState({
+      user: state => state.user,
+      mqttParams: state => state.mqtt.mqttParams,
+      clientId: state => state.mqtt.clientId
+    }),
+  },
+  watch: {
+    mqttParams: {
+      deep: true,
+      handler: function(params) {
+          if(params&&this.status != '2' && this.status != '1'&&this.open){
+            this.setInfo(params)
+          }
+      }
+    }
   },
   props: {
     iscx: {
@@ -1368,7 +1382,7 @@ export default {
   data() {
     return {
       khyhOpt:[],
-      isMqtt:false,
+      isMqtt:true,
       hjOpt:[{label:'本地户籍',value:'0'},{label:'外地迁入',value:'1'}],
       glsqsjRange: [],
       multipleSelection: [],
@@ -1406,7 +1420,7 @@ export default {
       client: null,
       options: {
         connectTimeout: 6000, // 超时时间
-        clientId: "znyl_" + getUuid(),
+        clientId: "znyl_" + getUuid(),//在一个页面不好使是因为clientId不变的问题
         // endpoint: "/mqtt",
         // host: "jdgl.ccsckj.com",
         // port: 443,
@@ -2025,6 +2039,144 @@ export default {
         }
       });
     },
+    // 根据mqtt获取到的值进行赋值
+    async setInfo(msgobj){
+      if (msgobj.params.picadata1) {
+        this.clearTime();
+        // console.log(msgobj.params.ywlx,'msgobj.params.ywlx');
+        if (msgobj.params.lx === "sfz") {
+          //身份证正面
+          if(msgobj.params.picadata1) {
+            let qur = await this.idCardIdentify(msgobj.params.picadata1, 'front')
+            if (!qur.image_status || qur.image_status != 'normal' || qur.idcard_number_type != '1') {
+              this.$modal.msgError(`请上传正确的身份证正面照片`);
+              return;
+            }
+
+            if (msgobj.params.ywlx === "sfz") {
+              if (this.cardNo && (qur.words_result['公民身份号码'].words != this.cardNo)) {
+                this.$modal.msgError(`申请人证件信息与户口本信息不一致`);
+                return;
+              }
+
+            }
+
+            let formCard = {
+              sqrZjhm: qur.words_result['公民身份号码'].words,
+              csrq: qur.words_result['出生'].words,
+              xb: qur.words_result['性别'].words,
+              mz: qur.words_result['民族'].words,
+              sqrXm: qur.words_result['姓名'].words,
+              hjdz: qur.words_result['住址'].words,
+            }
+            if (msgobj.params.ywlx === "sfz") {
+              this.form.sqrZjzm = msgobj.params.picadata2;
+              this.getCard(formCard)
+            }
+            // console.log(qur, '身份证正面')
+            if(msgobj.params.ywlx === "dbr"){
+              this.form.dbrZjzm = msgobj.params.picadata2;
+              this.getCard2(formCard)
+            }
+            if(msgobj.params.ywlx === "jhr"){
+              this.form.jhrZjzm = msgobj.params.picadata2;
+              this.getCardJh(formCard)
+            }
+          }
+          //身份证背面
+          if(msgobj.params.picbdata1)
+          {
+            let data2=  await this.idCardIdentify(msgobj.params.picbdata1,'back')
+            if (!data2.image_status || data2.image_status != 'normal') {
+              this.$modal.msgError(`请上传正确的身份证反面照片`);
+              return;
+            }
+            if (msgobj.params.ywlx === "sfz") {
+              this.form.sqrZjbm = msgobj.params.picbdata2;
+              let formCard2 = {
+                fzjg: data2.words_result['签发机关'].words,
+                qfrq: data2.words_result['签发日期'].words,
+              }
+              this.getBack(formCard2)
+            }
+            if(msgobj.params.ywlx === "dbr"){
+              this.form.dbrZjbm = msgobj.params.picbdata2;
+
+            }
+            if(msgobj.params.ywlx === "jhr"){
+              this.form.jhrZjbm = msgobj.params.picbdata2;
+            }
+            // console.log(data2,'身份证反面')
+          }
+          // "picadata1":"https://jdgl.ccsckj.com/gljtUploadPath/2025/04/01/47b485800e9e11f08b479343e1_20250401100901A108.png",
+          //   "picbdata1":"https://jdgl.ccsckj.com/gljtUploadPath/2025/04/01/47bbd8800e9e11f08b479343e1_20250401100901A109.png","lx":"sfz"}}
+        }
+        if (msgobj.params.lx === "rx") {
+          this.form.tx = msgobj.params.picadata2;
+          // console.log(this.form, "<-----我是form");
+          // this.form.tx='/gljtUploadPath/2025/02/17/43d9cbd0ecfe11efa4fd03c1431ab362_20250217151027A056.png';
+
+        }
+        if(msgobj.params.lx === "hk"){
+          //户口本首页
+          if(msgobj.params.picadata1){
+            let data=await this.household_registerIdentify(msgobj.params.picadata1,'homepage')
+            // console.log(data,'户口本首页');
+            if(!data.words_result){
+              this.$modal.msgError(`请上传正确的户口本首页`);
+              return;
+            }
+            this.form.hkbzm=msgobj.params.picadata2;
+          }
+          //户口本本人页
+          if(msgobj.params.picbdata1){
+            let qur=await this.household_registerIdentify(msgobj.params.picbdata1,'subpage')
+            // console.log(qur,'户口本本人页');
+            if(qur.words_result&&qur.words_result['CardNo']&&qur.words_result['Name']){
+              if(this.form.sqrZjhm&&(this.form.sqrZjhm!= qur.words_result['CardNo'].words)){
+                // if(this.opt&&this.opt.sqrZjhm&&this.opt.sqrXm&&(this.opt.sqrZjhm!= qur.words_result['CardNo'].words||this.opt.sqrXm!=qur.words_result['Name'].words)){
+                this.$modal.msgError(`申请人证件信息与户口本信息不一致`);
+                return;
+              }
+              let formCard={
+                cardNo:qur.words_result['CardNo'].words,
+                name:qur.words_result['Name'].words,
+              }
+              this.form.hkbbm=msgobj.params.picbdata2;
+              this.getSubpage(formCard)
+            }else{
+              this.$modal.msgError(`请上传正确的户口本本人页`);
+              return;
+            }
+          }
+        }
+        if(msgobj.params.lx === "yhk"){
+          let qur=await this.bankcardIdentify(msgobj.params.picadata1);
+          if(qur.result&&qur.result.bank_card_number&&qur.result.bank_card_type!='0'){
+            let formCard={
+              yhzh:qur.result.bank_card_number.replace(/\s*/g,'')
+            };
+            this.form.yhzjz=msgobj.params.picadata2;
+            this.getCardYhk(formCard)
+          }else{
+            this.$modal.msgError(`请上传正确的银行卡照片`);
+            return ;
+          }
+        }
+      }
+      if (msgobj.params.msg) {
+        this.divmsgfoot = msgobj.params.msg;
+        if (msgobj.params.msg) {
+          this.countdown = 60;
+          if (msgobj.params.msg == "开始采集") {
+            this.isZz = true;
+          }
+          if (msgobj.params.msg == "退出采集") {
+            this.clearTime();
+          }
+        }
+      }
+    },
     async message_str(topic, message) {
       //监听消息函数
       console.log("收到来自主题:" + topic + "的消息:" + message.toString());
@@ -2267,7 +2419,8 @@ export default {
         kssj: starttime,
         jssj: starttime + 60000,
         czsc: 60000,
-        clientid: this.options.clientId,
+        // clientid: this.options.clientId,
+        clientid:this.clientId,
         rad: Math.random().toString(16).substr(2, 8),
         iszs:Constant.IS_ZS
       };

+ 531 - 0
ruoyi-ui-gljt/src/views/gljt/plzj/index副本.vue

@@ -0,0 +1,531 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="批次名称" prop="pcmc">
+        <el-input
+          v-model="queryParams.pcmc"
+          placeholder="请输入批次名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="当发月份" prop="dfyf">
+        <el-input
+          v-model="queryParams.dfyf"
+          placeholder="请输入当发月份"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="计发开始月份" prop="startyf">
+        <el-input
+          v-model="queryParams.startyf"
+          placeholder="请输入计发开始月份"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="计发结束月份" prop="endyf">
+        <el-input
+          v-model="queryParams.endyf"
+          placeholder="请输入计发结束月份"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="补贴标准" prop="btbz">
+        <el-select v-model="queryParams.btbz" placeholder="请选择补贴标准" clearable>
+          <el-option
+            v-for="dict in dict.type.GL013"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="验活状态" prop="jkzk">
+        <el-select v-model="queryParams.jkzk" placeholder="请选择验活状态" clearable>
+          <el-option
+            v-for="dict in dict.type.GL010"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="老人状态" prop="lrzt">
+        <el-select v-model="queryParams.lrzt" placeholder="请选择老人状态" clearable>
+          <el-option
+            v-for="dict in dict.type.GL003"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="发放人数" prop="zjrs">
+        <number placeholder="发放人数" v-model.sync="queryParams.zjrs" :min="0" :max="100" />
+      </el-form-item>
+      <el-form-item label="发放金额" prop="zjje">
+        <number placeholder="发放金额" v-model.sync="queryParams.zjje" :min="0" :max="100" />
+      </el-form-item>
+      <el-form-item label="追加原因" prop="zjyy">
+        <el-input
+          v-model="queryParams.zjyy"
+          placeholder="请输入追加原因"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="追加原因" prop="zjr">
+        <el-input
+          v-model="queryParams.zjr"
+          placeholder="请输入追加原因"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="发放人姓名" prop="zjrxm">
+        <el-input
+          v-model="queryParams.zjrxm"
+          placeholder="请输入发放人姓名"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="发放单位" prop="zjdw">
+        <el-input
+          v-model="queryParams.zjdw"
+          placeholder="请输入发放单位"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="发放时间" prop="zjsj">
+          <el-date-picker clearable
+            v-model="queryParams.zjsj"
+            type="datetime"
+            value-format="yyyyMMddHHmmss"
+            placeholder="请选择发放时间">
+          </el-date-picker>
+      </el-form-item>
+      <el-form-item label="创建人行政区划编码" prop="createAreaCode">
+        <el-input
+          v-model="queryParams.createAreaCode"
+          placeholder="请输入创建人行政区划编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['gljt:plzj:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['gljt:plzj:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="plzjList" >
+      <el-table-column label="序号" align="center">
+        <template slot-scope="scope">
+          {{(queryParams.pageNum-1)*queryParams.pageSize + scope.$index + 1}}
+        </template>
+      </el-table-column>
+      <el-table-column label="行政区划" align="center" prop="xzqh" />
+      <el-table-column label="批次名称" align="center" prop="pcmc" />
+      <el-table-column label="当发月份" align="center" prop="dfyf" />
+      <el-table-column label="计发开始月份" align="center" prop="startyf" />
+      <el-table-column label="计发结束月份" align="center" prop="endyf" />
+      <el-table-column label="补贴标准" align="center" prop="btbz">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.GL013" :value="scope.row.btbz"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="验活状态" align="center" prop="jkzk">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.GL010" :value="scope.row.jkzk"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="老人状态" align="center" prop="lrzt">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.GL003" :value="scope.row.lrzt"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="发放人数" align="center" prop="zjrs" />
+      <el-table-column label="发放金额" align="center" prop="zjje" />
+      <el-table-column label="追加原因" align="center" prop="zjyy" />
+      <el-table-column label="追加原因" align="center" prop="zjr" />
+      <el-table-column label="发放人姓名" align="center" prop="zjrxm" />
+      <el-table-column label="发放单位" align="center" prop="zjdw" />
+      <el-table-column label="发放时间" align="center" prop="zjsj" width="180">
+        <template slot-scope="scope">
+            <span>{{ special(scope.row.zjsj,'time') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="数据状态" align="center" prop="status" />
+      <el-table-column label="创建人行政区划编码" align="center" prop="createAreaCode" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['gljt:plzj:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row,scope.$index)"
+            v-hasPermi="['gljt:plzj:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改高龄津贴批量追加信息对话框 -->
+    <el-dialog v-dialog-drag :title="title" :visible.sync="open" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+
+        <el-form-item label="行政区划" prop="xzqh">
+          <el-input v-model="form.xzqh" type="textarea" maxlength="500" show-word-limit placeholder="请输入行政区划" />
+        </el-form-item>
+
+        <el-form-item label="批次名称" prop="pcmc">
+          <el-input v-model="form.pcmc" placeholder="请输入批次名称" />
+        </el-form-item>
+
+        <el-form-item label="当发月份" prop="dfyf">
+          <el-input v-model="form.dfyf" placeholder="请输入当发月份" />
+        </el-form-item>
+
+        <el-form-item label="计发开始月份" prop="startyf">
+          <el-input v-model="form.startyf" placeholder="请输入计发开始月份" />
+        </el-form-item>
+
+        <el-form-item label="计发结束月份" prop="endyf">
+          <el-input v-model="form.endyf" placeholder="请输入计发结束月份" />
+        </el-form-item>
+
+        <el-form-item label="补贴标准" prop="btbz">
+          <el-select v-model="form.btbz" placeholder="请选择补贴标准">
+            <el-option
+              v-for="dict in dict.type.GL013"
+              :key="dict.value"
+              :label="dict.label"
+:value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="验活状态" prop="jkzk">
+          <el-select v-model="form.jkzk" placeholder="请选择验活状态">
+            <el-option
+              v-for="dict in dict.type.GL010"
+              :key="dict.value"
+              :label="dict.label"
+:value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="老人状态" prop="lrzt">
+          <el-select v-model="form.lrzt" placeholder="请选择老人状态">
+            <el-option
+              v-for="dict in dict.type.GL003"
+              :key="dict.value"
+              :label="dict.label"
+:value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="发放人数" prop="zjrs">
+          <number placeholder="发放人数" v-model.sync="form.zjrs" :min="0" :max="100" />
+        </el-form-item>
+
+        <el-form-item label="发放金额" prop="zjje">
+          <number placeholder="发放金额" v-model.sync="form.zjje" :min="0" :max="10000000000" :precision="2"/>
+        </el-form-item>
+
+        <el-form-item label="追加原因" prop="zjyy">
+          <el-input v-model="form.zjyy" placeholder="请输入追加原因" />
+        </el-form-item>
+
+        <el-form-item label="追加原因" prop="zjr">
+          <el-input v-model="form.zjr" placeholder="请输入追加原因" />
+        </el-form-item>
+
+        <el-form-item label="发放人姓名" prop="zjrxm">
+          <el-input v-model="form.zjrxm" placeholder="请输入发放人姓名" />
+        </el-form-item>
+
+        <el-form-item label="发放单位" prop="zjdw">
+          <el-input v-model="form.zjdw" placeholder="请输入发放单位" />
+        </el-form-item>
+
+        <el-form-item label="发放时间" prop="zjsj">
+          <el-date-picker clearable
+            v-model="form.zjsj"
+            type="datetime"
+            value-format="yyyyMMddHHmmss"
+            placeholder="请选择发放时间">
+          </el-date-picker>
+        </el-form-item>
+
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm" :loading="submitFormLoading">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import {addPlzj, delPlzj, getPlzj, listPlzj, updatePlzj} from "@/api/gljt/plzj";
+  import {chineseOne, idCard, Regular} from '@/utils/regular'
+
+  export default {
+  name: "Plzj",
+  dicts: ['GL003', 'GL013', 'GL010'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      submitFormLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 高龄津贴批量追加信息表格数据
+      plzjList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        xzqh: [
+          { required: true, message: "行政区划不能为空", trigger: "blur" },
+        ],
+        pcmc: [
+          { max: 100, message: '批次名称不能超过100个字符', trigger: 'blur'},
+        ],
+        dfyf: [
+          { max: 8, message: '当发月份不能超过8个字符', trigger: 'blur'},
+        ],
+        startyf: [
+          { max: 8, message: '计发开始月份不能超过8个字符', trigger: 'blur'},
+        ],
+        endyf: [
+          { max: 8, message: '计发结束月份不能超过8个字符', trigger: 'blur'},
+        ],
+        zjyy: [
+          { max: 100, message: '追加原因不能超过100个字符', trigger: 'blur'},
+        ],
+        zjr: [
+          { max: 32, message: '追加原因不能超过32个字符', trigger: 'blur'},
+        ],
+        zjrxm: [
+          { max: 32, message: '发放人姓名不能超过32个字符', trigger: 'blur'},
+          { validator: chineseOne, trigger: 'blur' },
+        ],
+        zjdw: [
+          { max: 32, message: '发放单位不能超过32个字符', trigger: 'blur'},
+        ],
+        status: [
+          { required: true, message: "数据状态不能为空", trigger: "blur" },
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询高龄津贴批量追加信息列表 */
+    getList() {
+      this.loading = true;
+      listPlzj(this.queryParams).then(response => {
+        this.plzjList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.submitFormLoading =false;
+      this.form = {
+        id: null,
+        xzqh: null,
+        pcmc: null,
+        dfyf: null,
+        startyf: null,
+        endyf: null,
+        btbz: null,
+        jkzk: null,
+        lrzt: null,
+        zjrs: null,
+        zjje: null,
+        zjyy: null,
+        zjr: null,
+        zjrxm: null,
+        zjdw: null,
+        zjsj: null,
+        status: "0",
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加高龄津贴批量追加信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPlzj(id).then(response => {
+        this.form = response.data;
+        /****** sks 需要改动的地方 start ******/
+        // this.copyForm=this.deepCopy(response.data)
+        /****** sks 需要改动的地方 end ******/
+        this.open = true;
+        this.title = "修改高龄津贴批量追加信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.submitFormLoading = true;
+          if (this.form.id != null) {
+            /****** sks 需要改动的地方 start ******/
+            // let formData=this.comparisonObject(this.form,this.copyForm);
+            // if(formData) {
+              updatePlzj(this.form).then(response => {
+                this.$modal.msgSuccess("修改成功");
+                this.open = false;
+                // this.plzjList=this.dataReplacement(this.plzjList,this.form.id,formData);
+                this.getList();
+              }).finally(()=>this.submitFormLoading =false);
+            // }else{
+            //   this.$modal.msgSuccess("修改成功");
+            //   this.open = false;
+            //   this.submitFormLoading = false;
+            // }
+            /****** sks 需要改动的地方 end ******/
+          } else {
+            addPlzj(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+              /****** sks 需要改动的地方 start ******/
+              // if (this.queryParams.pageSize===this.plzjList.length)
+              // {
+              //   this.plzjList.pop();
+              // }
+              // this.plzjList.unshift({...this.form,id:response.data});
+              // this.total++;
+              /****** sks 需要改动的地方 end ******/
+            }).finally(()=>this.submitFormLoading =false);
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row,index) {
+      const ids = row.id || this.ids;
+      const xh = (this.queryParams.pageNum-1)*this.queryParams.pageSize + index + 1;
+      this.$modal.confirm('确认删除' + this.changeDelData(row,'id','ID值',xh) + '的记录?').then(function() {
+        return delPlzj(ids);
+      }).then(() => {
+        this.getList();
+        /****** sks 需要改动的地方 ind参数需要传进来 start ******/
+        // this.plzjList.splice(index,1);
+        // if(this.plzjList.length===0)
+        // {
+        //   this.getList();
+        // }else {
+        //   this.total--;
+        // }
+        this.$modal.msgSuccess("删除成功");
+        /****** sks 需要改动的地方 end ******/
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('gljt/plzj/export', {
+        ...this.queryParams
+      }, `plzj_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>