安瑾然
2022-07-21 448ebe0754e006d5a1ad37f87bd8fe961eb58277
login
5个文件已修改
314 ■■■■■ 已修改文件
src/api/common.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/plugins/element.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/plugins/filters.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/Audit.vue 286 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/common.js
@@ -16,4 +16,19 @@
            fileName: val
        }
    })
}
}
export function report(params) {
    return request({
        url: '/report',
        method: 'post',
        data: params
    })
}
export function getReportById(id) {
    return request({
        url: `/report/${id}`,
        method: 'get',
    })
}
src/plugins/element.js
@@ -4,7 +4,7 @@
    Button,
    Card,
    Col,
    Container, Dialog, Form, FormItem,
    Container, DatePicker, Dialog, Form, FormItem,
    Header,
    Icon, Input,
    Main,
@@ -13,11 +13,10 @@
    Message, Option, Pagination,
    Row, Select,
    Submenu, Table, TableColumn
    ,Upload
} from 'element-ui'
Vue.use(Button).use(Container).use(Header).use(Aside).use(Menu).use(Submenu).use(MenuItem).use(Main).use(Icon).use(Card)
    .use(Col).use(Row).use(Card).use(Table).use(TableColumn).use(Form).use(FormItem).use(Input).use(Select).use(Option)
    .use(Pagination).use(Dialog).use(Upload)
    .use(Pagination).use(Dialog)
Vue.prototype.$message = Message
Vue.prototype.$message = Message
src/plugins/filters.js
@@ -5,4 +5,4 @@
    getImgUrl(val).then(res => {
        return res
    })
}
}
src/router/index.js
@@ -78,7 +78,7 @@
})
// 挂载路由导航守卫
router.beforeEach((to, drom, next) => {
router.beforeEach((to, from, next) => {
    // to 将要访问的路径
    // from 代表从哪个路径跳转
    // next 是一个函数,表示放行
src/views/common/Audit.vue
@@ -36,7 +36,7 @@
        <el-table-column prop="id" label="序号" width="60"></el-table-column>
        <el-table-column width="80" prop="pic" label="头像">
          <template slot-scope="scope">
            <img :src="scope.row.pic | fileNameToPath" style="width: 40px;height: 40px; border-radius: 50%;">
            <img :src="scope.row.pic" style="width: 40px;height: 40px; border-radius: 50%;">
          </template>
        </el-table-column>
        <el-table-column width="80" prop="reporterName" label="报案人"></el-table-column>
@@ -76,22 +76,160 @@
                     :total="total"></el-pagination>
    </el-card>
    <!--添加人员弹窗-->
    <el-dialog
        title="提示"
        :visible.sync="addAduitDialogVisible"
        width="30%"
        :before-close="addAduitClose">
      <span>这是一段信息</span>
    <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.tmpTime" type="datetime" placeholder="选择日期时间"
                              :style="{width: '100%'}" format="yyyy-MM-dd HH:mm:ss"
                              :value-format="auditFrom.cheatTime"></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" required>
              <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="addAduitDialogVisible = false">确 定</el-button>
  </span>
        <el-button @click="addAduitDialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="addAduit">确 定</el-button>
      </span>
    </el-dialog>
    <!--查看详情弹窗-->
    <el-dialog title="案件详情" :visible.sync="infoAduitDialogVisible" width="50%" :before-close="infoAduitClose">
      <el-row :gutter="15">
        <el-form ref="infoAduitForm" :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>
          </el-col>
          <el-col :span="12">
            <el-form-item label="报案人 ">
              <el-input v-model="auditInfo.reporterName" disabled
                        :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>
            </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>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="被骗时间">
              <el-date-picker v-model="auditInfo.tmpTime" type="datetime" placeholder="选择日期时间"
                              :style="{width: '100%'}" format="yyyy-MM-dd HH:mm:ss"
                              :value-format="auditFrom.cheatTime" disabled></el-date-picker>
            </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>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="案件描述">
              <el-input v-model="auditInfo.reportDescription" placeholder="请输入案件描述"
                        :style="{width: '100%'}" disabled></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="补充信息">
              <el-input v-model="auditInfo.information" type="textarea" placeholder="请输入补充信息"
                        :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}" disabled></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="上传" required>
              <el-upload ref="reportMaterials" :file-list="auditInfo.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%'}" disabled>
                <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>
    </el-dialog>
  </div>
</template>
<script>
import {getAuditList} from '@/api/common'
import {getAuditList, getImgUrl, getReportById, report} from '@/api/common'
export default {
  name: "Audit",
@@ -103,8 +241,24 @@
        isInGroup: '5',
        current: 1,
        HavaMaterial: '5',
        size: 10
        size: 10,
      },
      auditFrom: {
        pic: '',
        reporterName: '',
        mobile: '',
        idcard: '',
        cheatTime: '',
        amountInvolved: '',
        reportDescription: '',
        information: '',
        reportMaterials: "",
        causeId: '',
        fileList: [],
        tmpTime: '',
      },
      auditInfo: {},
      picShow: "",
      optionsGroup: [
        {
          value: '5',
@@ -136,14 +290,96 @@
      total: 0,
      list: [],
      addAduitDialogVisible: false,
      infoAduitDialogVisible: false,
      causeOptions: [],
      rules: {
        reporterName: [{
          required: true,
          message: '请输入报案人 ',
          trigger: 'blur'
        }],
        mobile: [{
          required: true,
          message: '请输入手机号码',
          trigger: 'blur'
        }],
        idcard: [{
          required: true,
          message: '请输入身份证号',
          trigger: 'blur'
        }],
        tmpTime: [{
          required: true,
          message: '请输入被骗时间',
          trigger: 'blur'
        }],
        amountInvolved: [{
          required: true,
          message: '请输入涉案金额',
          trigger: 'blur'
        }],
        reportDescription: [{
          required: true,
          message: '请输入案件描述',
          trigger: 'blur'
        }],
        information: [{
          required: true,
          message: '请输入补充信息',
          trigger: 'blur'
        }],
        causeId: [{
          required: true,
          message: '请选择下拉选择',
          trigger: 'change'
        }],
      },
    }
  },
  created() {
    this.getList()
    this.getCauseOptions()
  },
  methods: {
    infoAduitClose() {
      this.infoAduitDialogVisible = false
      this.$refs.infoAduitForm.resetFields()
    },
    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.addAduitDialogVisible = false
          this.getList()
        }).catch(err => {
          this.addAduitClose()
        })
      })
    },
    async getCauseOptions() {
      const {data: data} = await this.$http.get('/api/cause/getCauseIdAndName');
      this.causeOptions = data.data;
    },
    handleAvatarSuccess(res, file) {
      this.auditFrom.pic = res.data
      console.log(res.data)
      getImgUrl(res.data).then(res => {
        this.picShow = res
      })
    },
    async handleMaterialSuccess(res, file) {
      this.auditFrom.fileList.push({
        name: file.name,
        url: await getImgUrl(res.data),
        data: res.data
      })
    },
    addAduitClose() {
      this.addAduitDialogVisible = false
      this.$refs.addAduitForm.resetFields()
      this.picShow = ""
    },
    getList() {
      let param = {}
@@ -156,6 +392,15 @@
      getAuditList(param).then(res => {
        this.total = res.total
        this.list = res.records
        this.list.forEach(x => {
          if (x.pic === '' || x.pic === null) {
            x.pic = './logo.png';
          } else {
            getImgUrl(x.pic).then(res => {
              x.pic = res
            })
          }
        })
      })
    },
    search() {
@@ -171,11 +416,17 @@
      this.getList();
    },
    details(id) {
      console.log(id)
      getReportById(id).then(res => {
        this.auditInfo = res
        getImgUrl(res.pic).then(res => {
          this.picShow = res
        })
        this.infoAduitDialogVisible = true
      })
    },
    audit(id) {
      console.log(id)
    }
    },
  }
}
</script>
@@ -188,4 +439,9 @@
.demo-form-inline .el-select {
  width: 100px;
}
</style>
.el-form-item {
  margin-top: 20px;
}
</style>