Kaynağa Gözat

初步完成藏品修改审核页面

shaogen1995 4 yıl önce
ebeveyn
işleme
bc5e92c34c

+ 8 - 0
src/apis/holding4.js

@@ -19,3 +19,11 @@ export const getDetailById = (id) => {
     url: `/cms/ledgerEdit/detail/${id}`
   })
 }
+// 点击审核
+export const clickAudit = (data) => {
+  return axios({
+    method: 'post',
+    url: '/cms/ledgerEdit/audit',
+    data
+  })
+}

+ 13 - 4
src/views/holding/holding3_DiaEdit.vue

@@ -302,8 +302,8 @@ import {
   getGoodsNumType,
   getGoodsType,
   detailsById,
-  getFileList,
-  deleteAffix
+  getFileList
+  // deleteAffix
 } from '@/apis/holding'
 export default {
   name: 'holding3_DiaEdit',
@@ -430,7 +430,7 @@ export default {
           // console.log(999, this.temp.join(','))
           this.ruleForm.fileIds = this.temp.join(',')
         }
-        deleteAffix(val.id)
+        // deleteAffix(val.id)
         this.$message({
           type: 'success',
           message: '删除成功!'
@@ -454,9 +454,18 @@ export default {
       const res = await getFileList(myId, myType)
       // console.log(6666, res)
       this.tableData = res.data
-      this.tableData.forEach(v => {
+      this.tableData.forEach((v, i) => {
         v.updateTime = v.updateTime.slice(0, 10)
+        // if (!(this.ruleForm.fileIds.includes(v.id + ''))) this.tableData.splice(i, 1)
       })
+      this.$nextTick(() => {
+        setTimeout(() => {
+          this.tableData = this.tableData.filter(v => this.ruleForm.fileIds.includes(v.id + ''))
+        }, 100)
+      })
+      // if()
+      // console.log(999999, this.tableData, this.ruleForm.fileIds)
+      // 删除没有发送接口,需要自己处理数据
       // this.fileList = [{ name: this.tableData[0].name, url: this.tableData[0].filePath }]
       // { name: '666.png', url: '666' }
     },

+ 13 - 8
src/views/holding/holding4.vue

@@ -61,9 +61,9 @@
               </el-table-column>
               <el-table-column label="操作" width="295">
                 <template #default='{row}'>
-                  <el-button type="text"  @click="myLook(row)">查看</el-button>
-                  <el-button type="text"  @click="audit(row)" >审核</el-button>
-                  <el-button type="text"  @click="delData(row.id)" >删除</el-button>
+                  <el-button type="text"  @click="myLook(row)" v-if="row.status!=='待审核'">查看</el-button>
+                  <el-button type="text"  @click="audit(row)" v-if="row.status==='待审核'">审核</el-button>
+                  <el-button type="text"  @click="delData(row.id,row.status)" v-if="row.status!=='已完成'">删除</el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -177,11 +177,11 @@ export default {
         if (index === 1) {
           this.myData.status = 1
           this.getList(this.myData)
-        } else if (index === 3) {
+        } else if (index === 2) {
           // 点击已完成
           this.myData.status = 3
           this.getList(this.myData)
-        } else if (index === 4) {
+        } else if (index === 3) {
           // 点击审核不通过
           this.myData.status = 2
           this.getList(this.myData)
@@ -200,7 +200,7 @@ export default {
       })
     },
     // 点击删除
-    async delData (id) {
+    async delData (id, status) {
       this.$confirm('确定删除吗?', '提示', {
         confirmButtonText: '删除',
         cancelButtonText: '取消',
@@ -210,6 +210,11 @@ export default {
         await delData(id)
         // 发请求刷新页面
         this.getList(this.myData)
+        // 更新顶部数据
+        this.stateArr.forEach(v => {
+          if (v.txt === status) v.num--
+        })
+        this.stateArr[0].num--
         this.$message({
           type: 'success',
           message: '删除成功!'
@@ -281,8 +286,8 @@ export default {
     let num3 = 0
     res.data.list.forEach(v => {
       if (v.status === 1) num1++
-      if (v.status === 0) num2++
-      if (v.status === 3) num3++
+      if (v.status === 3) num2++
+      if (v.status === 2) num3++
     })
     this.stateArr[1].num = num1
     this.stateArr[2].num = num2

+ 38 - 17
src/views/holding/holding4_audit.vue

@@ -20,7 +20,7 @@
         </div>
         <div class="con_edit">
           <div class="title">修改记录
-                        <el-button size="small">查 看</el-button>
+                        <el-button size="small" @click="look">查 看</el-button>
           </div>
           <div class="editChange">
             <div style="width:200px">修改内容</div>
@@ -30,8 +30,8 @@
           <div class="father">
           <div class="con_txt" v-for="(item,index) in editData" :key="index">
             <div style="width:200px">{{item.name}}</div>
-            <div style="width:650px">{{item.qian}}</div>
-            <div style="flex: 1;">{{item.hou}}</div>
+            <div style="width:650px">{{item.qian?item.qian:'-'}}</div>
+            <div style="flex: 1;">{{item.hou?item.hou:'-'}}</div>
           </div>
           </div>
         </div>
@@ -43,8 +43,8 @@
             label-width="100px"
             class="demo-ruleForm"
           >
-            <el-form-item label="审核结果:" prop="result">
-              <el-select v-model="fromData.result" placeholder="请选择">
+            <el-form-item label="审核结果:" prop="status">
+              <el-select v-model="fromData.status" placeholder="请选择">
                 <el-option label="通过" :value="3"></el-option>
                 <el-option label="不通过" :value="2"></el-option>
               </el-select>
@@ -52,12 +52,12 @@
 
             <el-form-item
               label="审核说明:"
-              prop="textarea"
+              prop="reason"
             >
               <el-input
                 type="textarea"
                 :rows="3"
-                v-model="fromData.textarea"
+                v-model="fromData.reason"
                 placeholder="请输入"
               ></el-input>
             </el-form-item>
@@ -70,19 +70,25 @@
         </div>
       </div>
     </div>
+        <!-- 点击查看显示弹窗 -->
+    <Holding4Look :dialogFormVisible.sync='isShow' :myObj='myObjLook'  ref="mylook"/>
   </div>
 </template>
 
 <script>
-import { getDetailById } from '@/apis/holding4'
+import Holding4Look from './holding4_audit_Dia.vue'
+import { getDetailById, clickAudit } from '@/apis/holding4'
 import TabList from '@/components/tabLeft.vue'
 export default {
   name: 'holding4_audit',
   // import引入的组件需要注入到对象中才能使用
-  components: { TabList },
+  components: { TabList, Holding4Look },
   data () {
     // 这里存放数据
     return {
+      fujianLook: [],
+      myObjLook: {},
+      isShow: false,
       myObj: {},
       // 字典
       dictionaries: {
@@ -115,15 +121,16 @@ export default {
         // { name: '完残程度', qian: '基本完整', hou: '部分残缺' }
       ],
       fromData: {
-        textarea: '',
-        result: 3
+        id: null,
+        reason: '',
+        status: 3
       },
       rules: {
-        textarea: [
+        reason: [
           { required: true, message: '不能为空', trigger: 'blur' },
           { max: 255, message: '不能超过255个字符', trigger: 'blur' }
         ],
-        result: [
+        status: [
           { required: true, message: '请选择活动区域', trigger: 'change' }
         ]
       }
@@ -135,10 +142,20 @@ export default {
   watch: {},
   // 方法集合
   methods: {
+    // 点击查看
+    look () {
+      this.isShow = true
+    },
     // 点击提交
     async submit () {
       try {
         await this.$refs.fromData.validate()
+        const res = await clickAudit(this.fromData)
+        console.log(99999999, res)
+        if (res.code === 0) {
+          this.$message.success('审核成功')
+          this.$router.push('/layout/holding4')
+        }
       } catch (error) {
         console.log(error)
       }
@@ -147,6 +164,7 @@ export default {
   // 生命周期 - 创建完成(可以访问当前this实例)
   async created () {
     this.myObj = this.$route.query
+    this.fromData.id = Number(this.$route.query.id)
     // 获取上个页面传递的数据
     const res = await getDetailById(this.myObj.id)
     const oldObj = res.data.goods
@@ -173,6 +191,8 @@ export default {
     newObj.level = this.myWwjb(newObj.level)
     newObj.numTypeId = this.mycategory(newObj.numTypeId)
     newObj.repair = this.mySave(newObj.repair)
+    // 把新的数据给查看弹窗
+    this.myObjLook = { ...newObj }
     if (newObj.thumb) {
       const temp = newObj.thumb.split('/')
       newObj.thumb = temp[temp.length - 1]
@@ -192,7 +212,7 @@ export default {
         temp += v.name + ' / '
         if (i <= newFujian.length - 1) temp2 += newFujian[i].name + ' / '
       })
-      this.editData.push({ name: '附件', qian: temp, hou: temp2 })
+      this.editData.push({ name: '附件信息', qian: temp, hou: temp2 })
     } else {
       let temp3 = ''
       let temp4 = ''
@@ -200,7 +220,7 @@ export default {
         temp3 += v2.name + ' / '
         if (i2 <= oldFujian.length - 1) temp4 += oldFujian[i2].name + ' / '
       })
-      this.editData.push({ name: '附件', qian: temp3, hou: temp4 })
+      this.editData.push({ name: '附件信息', qian: temp4, hou: temp3 })
     }
     // newFujian.forEach((v, i) => {
     //   if (v.type === 'video') v.type2 = '视频文件'
@@ -218,8 +238,9 @@ export default {
     //     })
     //   }
     // })
-    console.log(999, oldFujian, newFujian)
-    // this.editData
+    // console.log(999, oldFujian, newFujian)
+    // this.editData附件信息完全相同,直接删掉
+    if (this.editData[this.editData.length - 1].qian === this.editData[this.editData.length - 1].hou) this.editData.pop()
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {},

+ 299 - 0
src/views/holding/holding4_audit_Dia.vue

@@ -0,0 +1,299 @@
+<!--  -->
+<template>
+  <el-dialog title="查看藏品" :visible="dialogFormVisible" @close="btnOK()">
+    <div class="title">
+      <div :class="{ active: index === 0 }" @click="change(0)">藏品信息</div>
+      <div :class="{ active: index === 1 }" @click="change(1)">附件</div>
+    </div>
+    <div class="info" v-if="!index">
+            <div class="row">
+              <div><span>藏品名称:</span>{{ myObj.name?myObj.name:'-' }}</div>
+              <div><span>总登记号:</span>{{ myObj.registerNum?myObj.registerNum:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>编号类型:</span>{{ myObj.numTypeId?myObj.numTypeId:'-' }}</div>
+              <div><span>藏品编号:</span>{{ myObj.num?myObj.num:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>原名:</span>{{ myObj.primitiveName?myObj.primitiveName:'-' }}</div>
+              <div><span>年代:</span>{{ myObj.age?myObj.age:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>文物类别:</span>{{ myObj.goodsTypeId?myObj.goodsTypeId:'-' }}</div>
+              <div><span>文物级别:</span>{{ myObj.level?myObj.level:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>质地类型:</span>{{ myObj.textureType?myObj.textureType:'-' }}</div>
+              <div><span>质地类别:</span>{{ myObj.textureCategory?myObj.textureCategory:'-' }}</div>
+              <div><span>质地:</span>{{ myObj.texture?myObj.texture:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>通长:</span>{{ myObj.length?myObj.length:'-' }}</div>
+              <div><span>通宽:</span>{{ myObj.width?myObj.width:'-' }}</div>
+              <div><span>通高:</span>{{ myObj.height?myObj.height:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>完残程度:</span>{{ myObj.integrity?myObj.integrity:'-' }}</div>
+              <div><span>保存状态:</span>{{ myObj.repair?myObj.repair:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>完残状况:</span>{{ myObj.repairRemark?myObj.repairRemark:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>数量类型:</span>{{ myObj.amountType?myObj.amountType:'-' }}</div>
+              <div><span>具体数量:</span>{{ myObj.amount?myObj.amount:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>质量范围:</span>{{ myObj.qualityScope?myObj.qualityScope:'-' }}</div>
+              <div><span>具体质量:</span>{{ myObj.quality?myObj.quality:'-' }}</div>
+            </div>
+            <div class="row">
+              <div><span>入藏时间范围:</span>{{ myObj.checkInScope?myObj.checkInScope:'-' }}</div>
+              <div><span>入藏年度:</span>{{ myObj.checkInYear?myObj.checkInYear:'-' }}</div>
+            </div>
+            <!-- <div class="row">
+              <div>
+                <span>入库位置:</span>
+                <el-cascader
+                  ref="cascaderAddr"
+                  v-if="myObj.location && myObj.location.length === 3"
+                  placeholder=""
+                  disabled
+                  style="width: 80%"
+                  :props="{ value: 'id', label: 'name' }"
+                  v-model="myObj.location"
+                  :options="options"
+                ></el-cascader>
+                <i v-else>-</i>
+              </div>
+              <div>
+                <span>出库位置:</span>{{ myObj.outPath ? myObj.outPath : "-" }}
+              </div>
+            </div> -->
+    </div>
+    <div class="affix" v-else>
+      <div class="row">
+        <span>藏品图片:</span
+        ><img class="img" :src="baseURL + myObj.thumb" alt="" :onerror='defaultImg'/>
+      </div>
+      <div class="row row2">
+        <span>类型:</span>
+        <el-select v-model="select" style="width: 120px">
+          <el-option
+            v-for="item in affix"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </div>
+      <!-- 表格 -->
+      <el-table
+        :header-cell-style="{ background: '#eef1f6', color: '#606266' }"
+        :data="tableData"
+        border
+        style="width: 100%"
+      >
+        <el-table-column label="缩略图" width="120" v-if="this.select==='img'">
+          <template #default='{row}'>
+            <div class="smimg">
+              <img :src="baseURL+row.filePath" alt="" :onerror='defaultImg'/>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="附件名称" width="235">
+        </el-table-column>
+        <el-table-column prop="updateTime" label="上传时间"> </el-table-column>
+      </el-table>
+    </div>
+    <el-button type="primary" class="confirm" @click="btnOK">确 定</el-button>
+  </el-dialog>
+</template>
+
+<script>
+import { getDetailById } from '@/apis/holding4'
+// import { getFileList } from '@/apis/holding'
+import axios from '@/utils/request'
+export default {
+  name: 'Holding4_audit_Dia',
+  components: {},
+  props: {
+    dialogFormVisible: {
+      type: Boolean,
+      default: false
+    },
+    myObj: {
+      type: Object,
+      default: function () {
+        return {}
+      }
+    }
+  },
+  data () {
+    return {
+      options: [],
+      baseURL: '',
+      index: 0,
+      select: 'video',
+      // 表格数据
+      tableData: [],
+      tableDataObj: {
+        img: [],
+        video: [],
+        audio: [],
+        model: [],
+        doc: []
+      },
+      affix: [
+        { label: '高清图片', value: 'img' },
+        { label: '视频文件', value: 'video' },
+        { label: '音频文件', value: 'audio' },
+        { label: '三维模型', value: 'model' },
+        { label: '文档资料', value: 'doc' }
+      ]
+    }
+  },
+  // 监听属性 类似于data概念
+  computed: {},
+  // 监控data中的数据变化
+  watch: {
+    select (val) {
+      // console.log(999, val)
+      this.tableData = this.tableDataObj[val]
+      // this.getFileList(this.myObj.id, this.select)
+    }
+  },
+  // 方法集合
+  methods: {
+    getFujian () {
+      // this.fujianLook.forEach(v=>{
+
+      // })
+    },
+    // 获取附件列表
+    // async getFileList (id, select) {
+    //   const res = await getFileList(id, select)
+    //   // console.log(666, res)
+    //   this.tableData = res.data
+    //   this.tableData.forEach(v => {
+    //     v.updateTime = v.updateTime.slice(0, 10)
+    //   })
+    // },
+    // 切换上面的信息和附件
+    change (index) {
+      this.index = index
+    },
+    // 点击确定
+    btnOK () {
+      this.$emit('update:dialogFormVisible', false)
+      this.select = 'video'
+    }
+  },
+  // 生命周期 - 创建完成(可以访问当前this实例)
+  async created () {
+    // 获取上个页面传递的数据
+    const res = await getDetailById(this.$route.query.id)
+    console.log(999999, res)
+    const newFujian = res.data.backupGoodsFile
+    newFujian.forEach((v) => {
+      v.updateTime = v.updateTime.slice(0, 10)
+      if (v.type === 'img') this.tableDataObj.img.push(v)
+      if (v.type === 'video') this.tableDataObj.video.push(v)
+      if (v.type === 'audio') this.tableDataObj.audio.push(v)
+      if (v.type === 'model') this.tableDataObj.model.push(v)
+      if (v.type === 'doc') this.tableDataObj.doc.push(v)
+    })
+    this.tableData = this.tableDataObj.video
+    // 获取服务器前缀地址
+    this.baseURL = axios.defaults.baseURL
+  },
+  // 生命周期 - 挂载完成(可以访问DOM元素)
+  mounted () {
+  },
+  beforeCreate () {}, // 生命周期 - 创建之前
+  beforeMount () {}, // 生命周期 - 挂载之前
+  beforeUpdate () {}, // 生命周期 - 更新之前
+  updated () {}, // 生命周期 - 更新之后
+  beforeDestroy () {}, // 生命周期 - 销毁之前
+  destroyed () {}, // 生命周期 - 销毁完成
+  activated () {} // 如果页面有keep-alive缓存功能,这个函数会触发
+}
+</script>
+<style lang='less' scoped>
+.title {
+  height: 32px;
+  border: 1px solid #ccc;
+  border-radius: 10px;
+  display: flex;
+  overflow: hidden;
+  & > div {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 50%;
+  }
+  .active {
+    background-color: #409eff;
+    color: #fff;
+  }
+}
+.info {
+  margin: 20px;
+  width: 95%;
+  margin-bottom: 60px;
+  .row {
+    display: flex;
+    & > div {
+      padding-left: 20px;
+      flex: 1;
+      padding: 10px;
+      border: 1px solid #ccc;
+      font-size: 16px;
+      color: black;
+      span {
+        font-weight: 700;
+      }
+    }
+  }
+}
+.affix {
+  .smimg {
+    // border: 3px solid #ccc;
+    height: 50px;
+    img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+
+  margin: 20px;
+  width: 95%;
+  margin-bottom: 60px;
+  .row2 {
+    margin: 30px 0;
+    align-items: center;
+  }
+  .row {
+    display: flex;
+    span {
+      display: block;
+      width: 80px;
+      text-align: right;
+    }
+    img {
+      margin-left: 15px;
+      max-width: 700px;
+      max-height: 200px;
+      // width: 85px;
+      // height: 85px;
+      // border: 3px solid #ccc;
+    }
+  }
+}
+.confirm {
+  position: absolute;
+  bottom: 20px;
+  left: 50%;
+  transform: translateX(-50%);
+}
+</style>

+ 7 - 4
src/views/statistics/statistics0.vue

@@ -43,7 +43,7 @@
           </div>
         </div>
         <div class="conten_right">
-          <div class="title">
+          <div class="title" v-show="towList.name">
             <b>{{ towList.name }}</b>
             <span>仓库编号:{{ towList.num }}</span>
             <i class="el-icon-plus" @click="addThree" v-show="userLogo.add"></i>
@@ -232,6 +232,7 @@ export default {
     },
     async popupOneOK () {
       if (this.popupOneName.trim() === '') return this.$message.error('库区名称不能为空')
+      if (this.popupOneName.length > 8) return this.$message.error('库区名称不能超过15个字符')
       await addEntrepot({
         level: 1,
         name: this.popupOneName,
@@ -289,7 +290,9 @@ export default {
     },
     async popupTowOK () {
       if (this.popupTowNum.trim() === '') return this.$message.error('仓库编号不能为空')
+      if (this.popupTowNum.length > 8) return this.$message.error('仓库编号不能超过15个字符')
       if (this.popupTowName.trim() === '') return this.$message.error('仓库名称不能为空')
+      if (this.popupTowName.length > 8) return this.$message.error('仓库名称不能超过15个字符')
       await addEntrepot({
         level: 2,
         name: this.popupTowName,
@@ -511,9 +514,9 @@ export default {
         color: black;
         li {
           cursor: pointer;
-          width: 100%;
-          height: 33px;
-          line-height: 33px;
+          // width: 100%;
+          // height: 33px;
+          // line-height: 33px;
           margin-left: 50px;
         }
         li:hover {