odc.xiaohui
2023-04-12 dae799a8795649862836f85461378b07013dafc3
修改报案添加
2个文件已修改
344 ■■■■■ 已修改文件
src/views/common/Audit.vue 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/Publicity.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/Audit.vue
@@ -89,126 +89,57 @@
      <el-pagination @current-change="handleCurrentChange" :current-page="queryInfo.current" :page-size="queryInfo.size"
        layout="prev, pager, next" :total="total"></el-pagination>
    </el-card>
    <!--添加人员弹窗-->
    <el-dialog title="添加人员" :visible.sync="addAduitDialogVisible" width="50%" :before-close="addAduitClose">
      <el-row :gutter="15">
        <el-form ref="addAduitForm" :model="auditFrom" :rules="rules" size="medium" label-width="100px">
          <el-col :span="12">
            <el-form-item label="头像" prop="pic" required>
              <el-upload ref="pic" action="/api/minio/upload" :show-file-list="false" :on-success="handleAvatarSuccess"
                list-type="picture-card" accept="image/*">
                <img v-if="picShow" :src="picShow" style="width: 145px;height: 145px">
                <i v-else class="el-icon-plus"></i>
              </el-upload>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="报案人 " prop="reporterName">
              <el-input v-model="auditFrom.reporterName" placeholder="请输入报案人 " clearable :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="手机号码" prop="mobile">
              <el-input v-model="auditFrom.mobile" placeholder="请输入手机号码" clearable :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="身份证号" prop="idcard">
              <el-input v-model="auditFrom.idcard" placeholder="请输入身份证号" clearable :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="被骗时间" prop="cheatTime">
              <el-date-picker v-model="auditFrom.cheatTime" type="datetime" placeholder="选择日期时间"
                :style="{ width: '100%' }" format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="涉案金额" prop="amountInvolved">
              <el-input v-model="auditFrom.amountInvolved" placeholder="请输入涉案金额" clearable :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="案件描述" prop="reportDescription">
              <el-input v-model="auditFrom.reportDescription" placeholder="请输入案件描述" clearable
                :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="补充信息" prop="information">
              <el-input v-model="auditFrom.information" type="textarea" placeholder="请输入补充信息"
                :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="上传" prop="fileList">
              <el-upload ref="reportMaterials" :file-list="auditFrom.fileList" action="/api/minio/upload"
                list-type="picture" :on-success="handleMaterialSuccess">
                <el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
              </el-upload>
            </el-form-item>
          </el-col>
          <!-- <el-col :span="24">
            <el-form-item label="关联案件" prop="causeId">
              <el-select v-model="auditFrom.causeId" placeholder="请选择下拉选择" clearable :style="{width: '50%'}">
                <el-option v-for="item in causeOptions" :key="item.id" :label="item.name"
                           :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col> -->
        </el-form>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="addAduitDialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="addAduit">确 定</el-button>
      </span>
    </el-dialog>
    <!--审核弹窗-->
    <el-dialog title="审核" :visible.sync="checkVisible" width="50%" :before-close="infoAduitClose">
    <el-dialog :title="fromTitle" :visible.sync="checkVisible" width="50%" :before-close="infoAduitClose">
      <el-row :gutter="15">
        <el-form ref="infoAduitForm" :rules="rules2" :model="auditInfo" size="medium" label-width="100px">
          <el-col :span="12">
            <el-form-item label="头像" prop="pic" required>
                <el-image style="width: 145px; height: 145px" :src="picShow" :preview-src-list="new Array(picShow)">
                </el-image>
            <el-form-item label="头像" prop="pic" >
              <el-upload ref="pic" action="/api/minio/upload" :show-file-list="false" :on-success="handleAvatarSuccess"
                         list-type="picture-card" accept="image/*">
                <img v-if="picShow" :src="picShow" style="width: 145px;height: 145px">
                <i v-else class="el-icon-plus"></i>
              </el-upload>
<!--                <el-image style="width: 145px; height: 145px" :src="picShow" :preview-src-list="new Array(picShow)">-->
<!--                </el-image>-->
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="报案人 ">
              <el-input v-model="auditInfo.reporterName" disabled :style="{ width: '100%' }"></el-input>
              <el-input v-model="auditInfo.reporterName" :disabled="fromDis" :style="{ width: '100%' }"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="手机号码">
              <el-input v-model="auditInfo.mobile" disabled :style="{ width: '100%' }">
              <el-input v-model="auditInfo.mobile" :disabled="fromDis" :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="身份证号">
              <el-input v-model="auditInfo.idcard" disabled :style="{ width: '100%' }">
              <el-input v-model="auditInfo.idcard" :disabled="fromDis" :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="被骗时间">
              <el-input v-model="auditInfo.cheatTime" placeholder="请选择报案时间 " clearable disabled :style="{ width: '100%' }">
              <el-date-picker
                  v-show="fromTitle=='添加'"
                  v-model="auditInfo.cheatTime"
                  type="date"
                  placeholder="选择日期"
                  value-format="yyyy-MM-dd 00:00:00"
              >
              </el-date-picker>
              <el-input v-show="fromTitle=='审核'" v-model="auditInfo.cheatTime" placeholder="请选择报案时间 " clearable :disabled="fromDis" :style="{ width: '100%' }">
              </el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="涉案金额">
              <el-input v-model="auditInfo.amountInvolved" placeholder="请输入涉案金额" :style="{ width: '100%' }" disabled>
              <el-input v-model="auditInfo.amountInvolved" placeholder="请输入涉案金额" :style="{ width: '100%' }" :disabled="fromDis">
              </el-input>
            </el-form-item>
          </el-col>
@@ -229,7 +160,19 @@
              <div class="metalL">
                <el-tabs v-model="activeName" @tab-click="handleClickTab">
                  <el-tab-pane label="身份证" name="a">
                   <div v-for="item in idCardMaterials">
                    <el-upload
                        :limit="2"
                        v-show="fromTitle=='添加'"
                        action="/api/minio/upload"
                        list-type="picture-card"
                        :with-credentials="true"
                        :on-preview="handlePictureCardPreview"
                        :on-success="handIdCardMaterials"
                        :on-remove="handleRemove"
                       >
                      <i slot="default" class="el-icon-plus"></i>
                    </el-upload>
                   <div v-show="fromTitle=='审核'" v-for="item in idCardMaterials">
                     <el-image
                         style="width: 100px; height: 100px"
                         :src="item"
@@ -237,7 +180,18 @@
                   </div>
                  </el-tab-pane>
                  <el-tab-pane label="合同" name="b">
                    <div v-for="item in contractMaterials">
                    <el-upload
                        v-show="fromTitle=='添加'"
                        action="/api/minio/upload"
                        list-type="picture-card"
                        :with-credentials="true"
                        :on-preview="handlePictureCardPreview"
                        :on-success="handContractMaterials"
                        :on-remove="handleRemove"
                       >
                      <i slot="default" class="el-icon-plus"></i>
                    </el-upload>
                    <div v-show="fromTitle=='审核'" v-for="item in contractMaterials">
                      <el-image
                          style="width: 100px; height: 100px"
                          :src="item"
@@ -245,15 +199,38 @@
                    </div>
                  </el-tab-pane>
                  <el-tab-pane label="交易凭证" name="c">
                    <div v-for="item in transactionMaterials">
                    <div v-show="fromTitle=='审核'" v-for="item in transactionMaterials">
                      <el-image
                          style="width: 100px; height: 100px"
                          :src="item"
                          fit="fill"></el-image>
                    </div>
                    <el-upload
                        v-show="fromTitle=='添加'"
                        action="/api/minio/upload"
                        list-type="picture-card"
                        :with-credentials="true"
                        :on-preview="handlePictureCardPreview"
                        :on-success="handTransactionMaterials"
                        :on-remove="handleRemove"
                        >
                      <i slot="default" class="el-icon-plus"></i>
                    </el-upload>
                  </el-tab-pane>
                  <el-tab-pane label="其他" name="d">
                    <div v-for="item in elseMaterials">
                    <el-upload
                        v-show="fromTitle=='添加'"
                        action="/api/minio/upload"
                        list-type="picture-card"
                        :with-credentials="true"
                        :on-preview="handlePictureCardPreview"
                        :on-success="handTlseMaterials"
                        :on-remove="handleRemove"
                       >
                      <i slot="default" class="el-icon-plus"></i>
                    </el-upload>
                    <div v-show="fromTitle=='审核'" v-for="item in elseMaterials">
                      <el-image
                          style="width: 100px; height: 100px"
                          :src="item"
@@ -275,10 +252,13 @@
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="checkVisible = false">取 消</el-button>
        <el-button type="danger" @click="innerLayerVisible =true">驳 回</el-button>
        <el-button v-show="fromTitle=='审核'" type="danger" @click="innerLayerVisible =true">驳 回</el-button>
        <el-button type="primary" @click="checkAdd">确 定</el-button>
      </span>
      <!-- 图片放大弹窗 -->
      <el-dialog :visible.sync="dialogVisible">
        <img width="100%" :src="dialogImageUrl" alt="">
      </el-dialog>
      <el-dialog
          width="30%"
          title="驳回原因"
@@ -408,6 +388,14 @@
  name: "Audit",
  data() {
    return {
      dialogImageUrl: '',
      dialogVisible: false,
      fromDis:false,
      fromTitle:'添加',
      idCardList:[],
      contractList:[],
      transacList:[],
      elseList:[],
      idCardMaterials:[],
      contractMaterials:[],
      transactionMaterials:[],
@@ -440,9 +428,11 @@
        fileList: [],
        tmpTime: '',
      },
      auditInfo: {},
      auditInfo: {
      picShow: "",
      },
      picShow: '',
      reportData: [],
      optionsGroup: [
        {
@@ -525,7 +515,7 @@
      },
      rules2:{
        causeId: [
          { required: true, message: '请选择活动区域', trigger: 'change' }
          { required: true, message: '请选择关联案件', trigger: 'change' }
        ]
      }
    }
@@ -536,6 +526,58 @@
  },
  methods: {
    handTlseMaterials(res){
      if (res.code === 200) {
        this.elseList.push({
          data: res.data
        })
      } else {
        this.$message.error(res.msg)
      }
      console.log(res,this.auditInfo)
    },
    handTransactionMaterials(res){
      if (res.code === 200) {
        this.transacList.push({
          data: res.data
        })
      } else {
        this.$message.error(res.msg)
      }
      console.log(res,this.auditInfo)
    },
    handContractMaterials(res){
      if (res.code === 200) {
        this.contractList.push({
          data: res.data
        })
      } else {
        this.$message.error(res.msg)
      }
      console.log(res,this.auditInfo)
    },
    handIdCardMaterials(res){
      if (res.code === 200) {
        this.idCardList.push({
          data: res.data
        })
      } else {
        this.$message.error(res.msg)
      }
      console.log(res,this.auditInfo,this.idCardList)
    },
    // 正文图片上传,删除操作
    handleRemove(file, fileList) {
      // file是点击删除的文件,fileList时删除后剩下的文件列表
      console.log(file,fileList)
      // this.auditInfo.idCardMaterials = fileList[0].response
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url
      this.dialogVisible = true
    },
    openInnerLayerVisible(){
    },
@@ -568,6 +610,7 @@
      }
    },
    rejectionConfirmation(){
      let data={
        id:this.auditInfo.id,
        reason:this.reasonForRejectionInput
@@ -582,25 +625,50 @@
    //审核确定
    checkAdd() {
      let form = null;
      form = this.auditInfo;
      console.log(form)
      this.$refs.infoAduitForm.validate((valid)=>{
        if(valid){
          checkPass(form).then(res => {
            this.$message.success('提交成功')
            this.getList()
            this.checkVisible = false;
          })
        }else{
          return false;
        }
      console.log(form,this.idCardList)
      //处理图片身份证
      if (this.idCardList.length>0){
        form.idCardMaterials=this.idCardList.map(item=>item.data).join(',')
      }else {form.idCardMaterials=''}
      if (this.contractList.length>0){
        form.contractMaterials=this.contractList.map(item=>item.data).join(',')
      }else {form.contractMaterials=''}
      if (this.transacList.length>0){
        form.transactionMaterials=this.transacList.map(item=>item.data).join(',')
      }else {form.transactionMaterials=''}
      if (this.elseList.length>0){
        form.elseMaterials=this.elseList.map(item=>item.data).join(',')
      }else {form.elseMaterials=''}
      if (this.fromTitle=='添加'){
        report(form).then(res=>{
          this.checkVisible=false
          console.log(res)
          this.getList()
        })
      }else {
      })
        console.log(form)
        this.$refs.infoAduitForm.validate((valid)=>{
          if(valid){
            checkPass(form).then(res => {
              this.$message.success('提交成功')
              this.getList()
              this.checkVisible = false;
            })
          }else{
            return false;
          }
        })
      }
    },
    //审核
    check(val) {
      this.fromDis=true
      this.fromTitle='审核'
      getReportById(val).then(res => {
        this.auditInfo = res
        console.log(this.auditInfo)
@@ -665,27 +733,15 @@
      this.reportData = []
      this.picShow = ""
    },
    addAduit() {
      this.$refs.addAduitForm.validate(async (vaild) => {
        if (!vaild) return this.$message.error('输入有误')
        this.auditFrom.reportMaterials = this.auditFrom.fileList.map(i => i.data).join(',')
        report(this.auditFrom).then(res => {
          this.$message.success('提交成功')
          this.auditFrom = {}
          this.addAduitDialogVisible = false
          this.getList()
        }).catch(err => {
          this.addAduitClose()
        })
      })
    },
    async getCauseOptions() {
      const { data: data } = await this.$http.get('/api/cause/getCauseIdAndName');
      this.causeOptions = data.data;
      console.log(this.causeOptions)
    },
    handleAvatarSuccess(res, file) {
      this.auditFrom.pic = res.data
    handleAvatarSuccess(res, file,e) {
      console.log(res,file)
      this.auditInfo.pic = res.data
      getImgUrl(res.data).then(res => {
        this.picShow = res
      })
@@ -731,7 +787,34 @@
      this.getList()
    },
    addAduitDialogOpen() {
      this.addAduitDialogVisible = true
      // this.addAduitDialogVisible = true
      this.idCardMaterials=[]
      this.contractMaterials=[]
      this.transactionMaterials=[]
      this.elseMaterials=[]
      this.fromDis=false
      this.picShow= ''
      this.auditInfo= {
        pic: '',
        reporterName: '',
        mobile: '',
        idcard: '',
        cheatTime: '',
        amountInvolved: '',
        reportDescription: '',
        information: '',
        reportMaterials: "",
        causeId: '',
        fileList: [],
        idCardMaterials:[],
        elseMaterials:[],
        transactionMaterials:[],
        contractMaterials:[],
        tmpTime: '',
      }
      this.checkVisible = true
      this.fromTitle = '添加'
    },
    exportExcel() {
    },
src/views/common/Publicity.vue
@@ -369,6 +369,7 @@
            if (!vaild) return this.$message.error('输入有误')
            let param = null;
            param = JSON.parse(JSON.stringify(this.addPublicityForm));
            console.log(param)
            param.photoStr = param.img.map(item => item.name).join(',');
            addPublicityList(param).then(res => {
                  this.$message({