Lou
2024-04-03 2000221edb7ad8dfab493fa0b5f08a5a92cd1e53
subPackage/counterfraud/add.vue
@@ -9,30 +9,21 @@
         <u-icon name="arrow-right" size="20"></u-icon>
      </view>
      <u-form labelPosition="left" :model="info" ref="form" labelWidth="90" :labelStyle="{fontSize:'28rpx'}">
         <view class="content bgc-ff">
      <view class="content bgc-ff">
         <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
            :labelStyle="{fontSize:'28rpx'}">
            <u-form-item label="地址" prop="address" :borderBottom="false" v-if="!isScan">
            <u-form-item label="地址" prop="address" required :borderBottom="false" v-if="!isScan">
               <view class="address-row flex">
                  <view class="address-content f-28" v-if="info.address">
                     {{info.address}}
                  </view>
                  <view class="address-content f-28 c-99" v-if="!info.address">
                  <view class="address-content f-28 " style="color:#c0c4cc;" v-if="!info.address">
                     请选择地址
                  </view>
                  <view class="location-btn c-main f-24" @click="getLocation()">
                     获取地址
                  </view>
               </view>
               <!-- <u-input v-model="info.address" border="none"  placeholderClass="f-28 c-99"
                  inputAlign="right"    disabled  disabledColor="#fff">
                  <template slot="suffix">
                     <button class="location-btn c-main f-24"   @click="getLocation()">获取地址</button>
                  </template>
               </u-input> -->
            </u-form-item>
            <u-form-item label="地址" borderBottom required v-if="isScan">
@@ -40,62 +31,110 @@
                  placeholderClass="f-28 c-99" inputAlign="right"></u-textarea>
            </u-form-item>
            <!--             <u-form-item label="业主姓名" borderBottom required v-if="isScan">
               <u-input v-model="houseHoldInfo.name" border="none" disabled disabledColor="#fff"
                  placeholderClass="f-28 c-99" inputAlign="right"></u-input>
            </u-form-item>
            <u-form-item label="业主电话" borderBottom required v-if="isScan">
               <u-input v-model="houseHoldInfo.phoneNumber" border="none" disabled disabledColor="#fff"
                  placeholderClass="f-28 c-99" inputAlign="right"></u-input>
            </u-form-item> -->
            <u-form-item label="问卷调查" borderBottom required prop="pubContent">
            <u-form-item label="宣传内容" borderBottom prop="pubContent">
               <u-textarea type="textarea" v-model="info.pubContent" border="none" placeholderClass="f-28 c-99"
                  inputAlign="right" placeholder="请输入问卷调查">
                  inputAlign="right" placeholder="请输入宣传内容">
               </u-textarea>
            </u-form-item>
            <!-- <u-form-item label="走访时间" prop="workTime" :borderBottom="false" required @click="showSelectDate = true">
               <u-input v-model="info.workTime" disabled disabledColor="#ffffff" border="none" placeholder="请选择"
                  placeholderClass="f-28 c-99" inputAlign="right"></u-input>
               <u-icon slot="right" name="arrow-right"></u-icon>
            </u-form-item> -->
            <!-- <u-form-item label="房屋" prop="houseCode" :borderBottom="false"  required
               @click="isShowScStatus = true">
               <u-input v-model="info.scStatus" disabled disabledColor="#fff" border="none" placeholder="请选择"
                  placeholderClass="f-28 c-99" inputAlign="right"></u-input>
               <u-icon slot="right" name="arrow-right"></u-icon>
            </u-form-item> -->
         </u-form>
      </view>
      <view class="upload bgc-ff">
         <view class="f-28">宣传佐证照片</view>
         <view class="mt-20">
            <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
               :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
               :capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
               <view class="upload-item upload-icon flex_base">
                  <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
               </view>
            </u-upload>
         </view>
      </view>
      <view class="info mt-20 bgc-ff" v-if="isScan">
         <caption-row title="房屋信息" />
         <view class="info-row flex j-c-s-b a-i-c f-28">
            <text>业主姓名</text>
            <text>{{houseHoldInfo.name}}</text>
            <!-- <u-form-item label="是否下载国家反诈app" labelWidth="120" prop="isFzApp">
               <u-radio-group v-model="info.isFzApp">
                  <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                     :label="item.name" :name="item.id">
                  </u-radio>
               </u-radio-group>
            </u-form-item>
            <u-form-item label="是否打开预警功能" labelWidth="120" prop="isOpenAlarm">
               <u-radio-group v-model="info.isOpenAlarm">
                  <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
                     :label="item.name" :name="item.id">
                  </u-radio>
               </u-radio-group>
            </u-form-item> -->
         </view>
         <view class="info-row flex j-c-s-b a-i-c f-28">
            <text>业主手机号</text>
            <text>{{houseHoldInfo.phoneNumber}}</text>
         <view class="upload bgc-ff">
            <view class="f-28">宣传佐证照片</view>
            <view class="mt-20">
               <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
                  :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                  :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg"
                  @delete="deletePic">
                  <view class="upload-item upload-icon flex_base">
                     <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
                  </view>
               </u-upload>
            </view>
         </view>
         <view class="info-row flex j-c-s-b a-i-c f-28" @click="navToHouse">
            <text>查看更多</text>
            <u-icon name="arrow-right"></u-icon>
         <view class="info mt-20 bgc-ff" v-if="isScan">
            <caption-row title="房屋信息" />
            <view class="info-row flex j-c-s-b a-i-c f-28">
               <text>业主姓名</text>
               <text>{{houseHoldInfo.name}}</text>
            </view>
            <view class="info-row flex j-c-s-b a-i-c f-28">
               <text>业主手机号</text>
               <text>{{houseHoldInfo.phoneNumber}}</text>
            </view>
            <view class="info-row flex j-c-s-b a-i-c f-28" @click="navToHouse">
               <text>查看更多</text>
               <u-icon name="arrow-right"></u-icon>
            </view>
         </view>
      </view>
         <view class="info mt-20 bgc-ff" v-if="false">
            <caption-row title="宣防对象" />
            <view v-for="(item, index) in info.backblastPubPersonEntityList" :key="index">
               <view class="flex a-i-c j-c-s-b" style="padding:20rpx;">
                  <view class="flex j-c-s-b a-i-c">
                     <view class="title fw" style="text-align:center; mr-20">人员信息-#{{ index*1 + 1 }}</view>
                     <ocr-navigator @onSuccess="recognizePersonSuccess($event,index)" certificateType="idCard"
                        :opposite="false">
                        <view class="recognize-btn flex a-i-c">
                           <u-icon name="scan" color="#fff" size="24"></u-icon>
                           <text class="f-26 c-ff" style="margin-left: 10rpx;">身份证信息识别</text>
                        </view>
                     </ocr-navigator>
                  </view>
                  <view>
                     <u-icon name="trash-fill" color="#ff0000" size="20" @click="delPerson(index)" />
                  </view>
               </view>
               <u-form-item label="姓名" borderBottom required>
                  <u-input v-model="info.backblastPubPersonEntityList[index].name" border="none"
                     placeholderClass="f-28 c-99" inputAlign="right" placeholder="请输入姓名"></u-input>
               </u-form-item>
               <u-form-item label="手机号" borderBottom required>
                  <u-input v-model="info.backblastPubPersonEntityList[index].telephone" border="none"
                     placeholderClass="f-28 c-99" inputAlign="right" placeholder="请输入手机号"></u-input>
               </u-form-item>
               <u-form-item label="身份证号" borderBottom required>
                  <u-input v-model="info.backblastPubPersonEntityList[index].idCard" type="idCard" border="none"
                     placeholderClass="f-28 c-99" inputAlign="right" placeholder="请输入身份证号"></u-input>
               </u-form-item>
               <u-form-item label="职业" borderBottom>
                  <u-input v-model="info.backblastPubPersonEntityList[index].occupation" border="none"
                     placeholderClass="f-28 c-99" inputAlign="right" placeholder="请输入职业"></u-input>
               </u-form-item>
               <u-form-item label="居住地" borderBottom>
                  <u-input v-model="info.backblastPubPersonEntityList[index].address" border="none"
                     placeholderClass="f-28 c-99" inputAlign="right" placeholder="请输入居住地"></u-input>
               </u-form-item>
            </view>
            <view class="add-person" style="padding:20rpx 30rpx;">
               <u-button type="success" plain @click="addPerson">再加一人</u-button>
            </view>
         </view>
      </u-form>
      <view class="blank"></view>
@@ -147,7 +186,8 @@
   } from "@/api/doorplateAddress/doorplateAddress";
   import {
      addCounterfraud
      addCounterfraud,
      getCounterfraudDetail
   } from "@/api/counterfraud/counterfraud.js"
   import captionRow from "@/components/caption/caption.vue"
@@ -168,16 +208,19 @@
               houseCode: "",
               lng: "",
               lat: "",
               pubContent: ""
               pubContent: "",
               isFzApp: "",
               isOpenAlarm: "",
               backblastPubPersonEntityList: []
            },
            rules: {
               address: [{
                  type: 'number',
                  required: true,
                  message: '请输入地址',
                  trigger: ['blur', 'change']
               }]
            },
            // rules: {
            //    address: [{
            //       type: 'number',
            //       required: true,
            //       message: '请输入地址',
            //       trigger: ['blur', 'change']
            //    }]
            // },
            showSelectDate: false,
            workTime: Number(new Date()),
            isShowPicker: false,
@@ -198,7 +241,17 @@
            isEdit: false,
            id: "",
            isScan: false, //是否扫码
            houseHoldInfo: {}
            houseHoldInfo: {},
            statusList: [{
                  name: "是",
                  id: 1
               },
               {
                  name: "否",
                  id: 2
               }
            ],
            personList: []
         }
      },
      // onLoad() {
@@ -222,7 +275,7 @@
      onReady() {
         //onReady 为uni-app支持的生命周期之一
         this.$refs.form.setRules(this.rules)
         // this.$refs.form.setRules(this.rules)
      },
      methods: {
@@ -326,47 +379,6 @@
            this.isShowPicker = false;
         },
         //选择走访类型
         confirmType(e) {
            console.log("type==>", e);
            this.typeIndex = e.indexs;
            this.info.type = e.value[0].dictKey;
            this.typeName = e.value[0].dictValue;
            if (e.value[0].dictKey == 1) {
               this.info.personType = "";
               this.keyword = "";
               this.getHouseholdList();
            }
            this.isShowTypePicker = false;
         },
         //选择重点人群类型
         confirmLabelType(e) {
            this.labelIndex = e.indexs;
            this.info.personType = e.value[0].id;
            this.labelName = e.value[0].name;
            this.isShowLabelPicker = false;
            this.getHouseholdList();
         },
         //搜索住户
         searchHousehold() {
            this.getHouseholdList()
         },
         clearKeyword() {
            this.keyword = "";
            this.getHouseholdList()
         },
         //选择住户
         selectHousehold(item) {
            this.selectedHousehold = item;
            this.info.householdId = item.id;
            this.address = `${item.townStreetName}${item.neiName}${item.aoiName}${item.address || ""}`
            this.isShowPopup = false;
         },
         checkImages() {
            if (this.form.images.length) {
@@ -384,14 +396,39 @@
         submitInfo() {
            this.$refs.form.validate().then(valid => {
               this.checkImages();
               if (this.isEdit) {
                  this.updateWorkLogRequest()
               } else {
                  this.addWorkLogRequest()
               }
            })
            this.checkImages();
            if (!this.info.address) {
               this.$showTips("请选择地址")
               return
            }
            // if (!this.info.backblastPubPersonEntityList.length) {
            //    this.$showTips("请添加宣防对象")
            //    return;
            // } else {
            //    for (let i of this.info.backblastPubPersonEntityList) {
            //       if (!i.name) {
            //          this.$showTips("请完善宣防对象信息")
            //          return;
            //       }
            //       if (!i.telephone) {
            //          this.$showTips("请完善宣防对象信息")
            //          return;
            //       }
            //       if (!i.idCard) {
            //          this.$showTips("请完善宣防对象信息")
            //          return;
            //       }
            //    }
            // }
            if (this.isEdit) {
               this.updateWorkLogRequest()
            } else {
               this.addWorkLogRequest()
            }
         },
         addWorkLogRequest() {
@@ -494,6 +531,35 @@
            uni.navigateTo({
               url: `propagateRecord`
            })
         },
         addPerson() {
            let data = {
               name: "",
               telephone: "",
               idCard: "",
               address: "",
               occupation: ""
            }
            this.info.backblastPubPersonEntityList.push(data)
         },
         delPerson(index) {
            this.info.backblastPubPersonEntityList.splice(index, 1);
         },
         recognizePersonSuccess(e, index) {
            let {
               detail: {
                  name,
                  id,
               }
            } = e;
            this.info.backblastPubPersonEntityList[index].name = name.text;
            this.info.backblastPubPersonEntityList[index].idCard = id.text;
         }
@@ -591,6 +657,7 @@
      // background-color: #F5F5F5;
      font-size: 28rpx;
      padding: 2rpx 10rpx;
      text-align: right;
   }
   .top {
@@ -663,4 +730,19 @@
      color: #fff;
      margin-top: 50rpx;
   }
   /deep/ .u-radio-group {
      justify-content: flex-end;
   }
   /deep/ .u-textarea__field {
      text-align: right;
   }
   .recognize-btn {
      padding: 12rpx;
      border-radius: 6rpx;
      background-color: #3c9cff;
      margin-left: 30rpx;
   }
</style>