shaogen1995 4 лет назад
Родитель
Сommit
aea3a3faff

+ 5 - 0
package-lock.json

@@ -7972,6 +7972,11 @@
         "minimist": "^1.2.5"
       }
     },
+    "moment": {
+      "version": "2.29.1",
+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+      "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+    },
     "move-concurrently": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",

+ 1 - 0
package.json

@@ -12,6 +12,7 @@
     "core-js": "^3.6.5",
     "default-passive-events": "^2.0.0",
     "element-ui": "^2.15.6",
+    "moment": "^2.29.1",
     "vue": "^2.6.11",
     "vue-router": "^3.2.0"
   },

+ 46 - 5
src/apis/holding.js

@@ -1,10 +1,15 @@
 import axios from '../utils/request'
-// 藏品登记-列表
-export const getHoldingList = (data) => {
+// 从holding0页面点击新增
+export const oneAdd = () => {
   return axios({
     method: 'post',
-    url: '/cms/goods/list',
-    data
+    url: '/cms/register/add'
+  })
+}
+// 藏品登记-列表
+export const getHoldingList = (id) => {
+  return axios({
+    url: `/cms/goods/list/${id}`
   })
 }
 // 新增/修改
@@ -21,6 +26,13 @@ export const getGoodsNumType = () => {
     url: '/cms/goods/base/getGoodsNumType'
   })
 }
+
+// 获取获取臧品来源
+export const getGoodsFrom = () => {
+  return axios({
+    url: '/cms/register/base/getGoodsFrom'
+  })
+}
 // 获取文物类型
 export const getGoodsType = () => {
   return axios({
@@ -30,7 +42,7 @@ export const getGoodsType = () => {
 // 删除单个文物类型
 export const removeOne = (id) => {
   return axios({
-    url: `/cms/goods/remove/${id}`
+    url: `/cms/goods/removes/${id}`
   })
 }
 // 通过id获取藏品详情
@@ -39,3 +51,32 @@ export const detailsById = (id) => {
     url: `/cms/goods/detail/${id}`
   })
 }
+// 从holding0_add点击提交
+export const addSubmit = (data) => {
+  return axios({
+    method: 'post',
+    url: '/cms/register/edit',
+    data
+  })
+}
+// holding0页面获取列表
+export const getList = (data) => {
+  return axios({
+    method: 'post',
+    url: '/cms/register/list',
+    data
+  })
+}
+// holding0页面删除
+export const removeH0 = (id) => {
+  return axios({
+    url: `/cms/register/remove/${id}`
+  })
+}
+// holding0页面提审
+export const auditH0 = (id) => {
+  return axios({
+    url: `/cms/register/apply/${id}`
+  })
+}
+// holding0_audit通过id获取详情

+ 26 - 0
src/main.js

@@ -59,6 +59,32 @@ const checkBtn = {
         { id: -1, name: '残缺' }
       ]
       return list.filter(v => id === v.id)[0].name
+    },
+    // 藏品来源数据处理
+    mySource (id) {
+      const list = [
+        { id: 1, name: '征集购买' },
+        { id: 2, name: '接受捐赠' },
+        { id: 3, name: '依法交换' },
+        { id: 4, name: '拨交' },
+        { id: 5, name: '移交' },
+        { id: 6, name: '旧藏' },
+        { id: 7, name: '发掘' },
+        { id: 8, name: '采集' },
+        { id: 9, name: '拣选' },
+        { id: 10, name: '其他' }
+      ]
+      return list.filter(v => id === v.id)[0].name
+    },
+    // 状态的数据处理
+    myState (id) {
+      const list = [
+        { id: 0, name: '草稿中' },
+        { id: 1, name: '待审核' },
+        { id: 2, name: '审核不通过' },
+        { id: 3, name: '审核通过' }
+      ]
+      return list.filter(v => id === v.id)[0].name
     }
   }
 }

+ 107 - 34
src/views/holding/holding0.vue

@@ -15,19 +15,19 @@
         <div class="middle">
           <div class="select">
             <span>藏品来源:</span>
-            <el-select v-model="sourceVal" placeholder="请选择">
+            <el-select v-model="myData.sourceId" placeholder="请选择">
               <el-option
                 v-for="item in source"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
               >
               </el-option>
             </el-select>
 
             <span>单位或个人:</span>
             <el-input
-              v-model="type"
+              v-model="myData.searchKey"
               placeholder="请输入"
               style="width: 217px"
             ></el-input>
@@ -39,8 +39,8 @@
       start-placeholder="开始日期"
       end-placeholder="结束日期">
     </el-date-picker>
-            <el-button style="margin-left: 20px">查询</el-button>
-            <el-button type="primary" @click="$router.push('holding0_add')">新增</el-button>
+            <el-button style="margin-left: 20px" @click="getList(myData)">查询</el-button>
+            <el-button type="primary" @click="addOne()">新增</el-button>
           </div>
           <!--表格 -->
           <div class="table">
@@ -50,13 +50,13 @@
               border
               style="width: 100%"
             >
-              <el-table-column prop="registerNum" label="登记编号" width="130">
+              <el-table-column prop="num" label="登记编号" width="230">
               </el-table-column>
-              <el-table-column prop="name" label="藏品来源" width="150">
+              <el-table-column prop="sourceId" label="藏品来源" width="100">
               </el-table-column>
-              <el-table-column prop="address" label="单位或个人">
+              <el-table-column prop="unit" label="单位或个人">
               </el-table-column>
-              <el-table-column prop="name" label="登记人员" width="110">
+              <el-table-column prop="realName" label="登记人员" width="110">
               </el-table-column>
               <el-table-column prop="createTime" label="创建日期" width="200">
               </el-table-column>
@@ -65,11 +65,11 @@
               <el-table-column prop="status" label="状态" width="130">
               </el-table-column>
               <el-table-column label="操作" width="150">
-                <template #default>
-                  <!-- <el-button type="text">查看</el-button> -->
-                  <el-button type="text">删除</el-button>
-                  <el-button type="text">编辑</el-button>
-                  <el-button type="text" @click="$router.push('/layout/holding0_audit')">审核</el-button>
+                <template #default='{row}'>
+                  <el-button type="text" v-if="row.status==='已完成'||row.status==='审核不通过'">查看</el-button>
+                  <!-- <el-button type="text" v-if="row.status==='待办理'||row.status==='草稿中'">编辑</el-button> -->
+                  <el-button type="text" v-if="row.status==='待审核'||row.status==='草稿中'" @click="auditH0(row)">审核</el-button>
+                  <el-button type="text" @click="removeH0(row.id)" v-if="row.status!=='已完成'">删除</el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -90,6 +90,7 @@
 </template>
 
 <script>
+import { oneAdd, getList, getGoodsFrom, removeH0, auditH0 } from '@/apis/holding'
 import TabList from '@/components/tabLeft.vue'
 export default {
   name: 'Holding0',
@@ -98,29 +99,17 @@ export default {
   },
   data () {
     return {
-      // 请求藏品登记参数
-      mydata: {
+      // 获取列表数据字段
+      myData: {
         startTime: '', // 开始时间
         endTime: '', // 结束时间
         pageNum: 1, // 起始页码,默认1为第一页
         pageSize: 10, // 每页数量
         searchKey: '', // 搜索条件
-        status: '', // 状态
-        type: ''// 类型
+        sourceId: null // 臧品来源Id
       },
-      sourceVal: '',
-      type: '',
       time: '',
-      source: [
-        {
-          value: '选项1',
-          label: '黄金糕'
-        },
-        {
-          value: '选项2',
-          label: '双皮奶'
-        }
-      ],
+      source: [],
       // 表格数据
       tableData: []
     }
@@ -128,12 +117,96 @@ export default {
   // 监听属性 类似于data概念
   computed: {},
   // 监控data中的数据变化
-  watch: {},
+  watch: {
+    time (val) {
+      // console.log(val)
+      this.handleSelect(val)
+    }
+  },
   // 方法集合
   methods: {
+    // 点击审核
+    async auditH0 (val) {
+      if (val.status === '草稿中') await auditH0(val.id)
+      this.$router.push({
+        path: '/layout/holding0_audit',
+        query: val
+      })
+    },
+    // 点击删除
+    removeH0 (id) {
+      this.$confirm('确定删除码?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        // 发请求,清空数据
+        await removeH0(id)
+        this.$message({
+          type: 'success',
+          message: '删除成功!'
+        })
+        this.getList(this.myData)
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消.'
+        })
+      })
+    },
+    // 时间处理----------------
+    handleSelect (e) {
+      const date = []
+      for (const i in e) {
+        date.push(this.gettime(e[i]))
+      }
+      this.myData.startTime = date[0]
+      this.myData.endTime = date[1]
+    },
+    gettime (data) {
+      const value = data.getFullYear() + '-' +
+      this.checkTime(data.getMonth() + 1) + '-' +
+      this.checkTime(data.getDate()) + ' ' +
+      this.checkTime(data.getHours()) + ':' +
+      this.checkTime(data.getMinutes()) + ':' +
+      this.checkTime(data.getSeconds())
+      return value
+    },
+    checkTime (i) {
+      if (i < 10) {
+        i = '0' + i
+      }
+      return i
+    },
+    // 封装获取列表函数
+    async getList (data) {
+      const res = await getList(data)
+      this.tableData = res.data.list
+      this.tableData.forEach(v => {
+        v.sourceId = this.mySource(v.sourceId)
+        v.status = this.myState(v.status)
+      })
+      // console.log(6666, res.data.list)
+    },
+    // 点击新增
+    async addOne () {
+      // 从主页面点击第一层新增
+      const res = await oneAdd()
+      // console.log(666666, res)
+      this.$router.push({
+        path: 'holding0_add',
+        query: res.data
+      })
+    }
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {},
+  async created () {
+    // 调用获取列表函数
+    this.getList(this.myData)
+    // 获取藏品来源
+    const res = await getGoodsFrom()
+    this.source = res.data
+  },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
     this.tabInd = this.INtabInd

+ 4 - 0
src/views/holding/holding0_DiaEdit.vue

@@ -299,6 +299,9 @@ export default {
     dialogFormVisible: {
       type: Boolean,
       default: false
+    },
+    registerId: {
+      type: Number
     }
   },
   data () {
@@ -429,6 +432,7 @@ export default {
     },
     // 点击确定
     async btnOK () {
+      this.ruleForm.registerId = this.registerId
       try {
         await this.$refs.ruleForm.validate()
         // console.log(this.ruleForm)

+ 35 - 0
src/views/holding/holding0_Dialog.vue

@@ -298,6 +298,9 @@ export default {
     dialogFormVisible: {
       type: Boolean,
       default: false
+    },
+    registerId: {
+      type: Number
     }
   },
   data () {
@@ -421,12 +424,44 @@ export default {
     },
     // 点击确定
     async btnOK () {
+      this.ruleForm.registerId = this.registerId
       try {
         await this.$refs.ruleForm.validate()
         // console.log(this.ruleForm)
         this.ruleForm.amount = Number(this.ruleForm.amount)
         await holdingAdd(this.ruleForm)
         // console.log(6666, res)
+        // 清空表单
+        this.ruleForm = {
+          age: '', // 年代
+          amount: '', // 数量
+          amountType: 0, // 数量类型, 0:单件, 1:一套多件
+          checkInScope: '2001至今', // 入藏时间范围
+          checkInYear: '', // 入藏年底
+          dirCode: 'daliCK', // 目录码
+          fileIds: '', // 图片类型使用,文件id, 多个以逗号分隔
+          goodsTypeId: 1, // 文物类型Id
+          height: '', // 高
+          // id:'',//id, 修改时必须传,新增忽略
+          integrity: 1, // 完整度, -1:残缺,0:基本完整, 1:完整
+          // isStorage: '', // 是否入库,0:不入库, 1:入库
+          length: '', // 长
+          level: 3, // 文物级别,前端输入。 -1:未定级, 0:一般, 1:一级, 2:二级, 3:三级
+          name: '', // 标题
+          num: '', // 臧品编号
+          numTypeId: 2, // 编号类型Id
+          primitiveName: '', // 原名
+          quality: '', // 具体质量
+          qualityScope: '0.01-1kg', // 质量范围
+          registerNum: '', // 总登记号
+          repair: 3, // 保存状态(修复状态), 0:不需修复, 1:需要修复,2:继续修复, 3:已修复
+          texture: '', // 质地
+          textureCategory: '', // 质地类别
+          textureType: 0, // 质地类型,前端输入, 0:单一质地, 1:复活质地
+          thumb: '', // 缩略图url
+          width: '' // 宽
+
+        }
         this.$message.success('新增成功')
         // 通知父组件更新界面
         this.$emit('updateUI')

+ 42 - 34
src/views/holding/holding0_add.vue

@@ -1,4 +1,3 @@
-<!--  -->
 <template>
   <div class="holdingAdd">
 
@@ -30,18 +29,17 @@
             </el-form-item>
           </div>
           <div class="tow_row">
-            <el-form-item label="藏品来源" prop="source" style="width: 45%">
-              <el-select v-model="fromData.source" placeholder="请选择" style="width: 100%">
-                <el-option label="区域一" value="shanghai"></el-option>
-                <el-option label="区域二" value="beijing"></el-option>
+            <el-form-item label="藏品来源" prop="sourceId" style="width: 45%">
+              <el-select v-model="fromData.sourceId" placeholder="请选择" style="width: 100%">
+                <el-option v-for="item in sourceList" :key="item.id" :label="item.name" :value="item.id"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="单位或个人" prop="unit" style="width: 45%">
               <el-input v-model="fromData.unit" placeholder="请输入"></el-input>
             </el-form-item>
           </div>
-            <el-form-item label="登记说明" prop="textarea" style="width: 90%">
-                <el-input  type="textarea" :rows="4" v-model="fromData.textarea" placeholder="请输入"></el-input>
+            <el-form-item label="登记说明" prop="description" style="width: 90%">
+                <el-input  type="textarea" :rows="4" v-model="fromData.description" placeholder="请输入"></el-input>
             </el-form-item>
         </el-form>
         <!-- 藏品信息 -->
@@ -97,21 +95,21 @@
         </div>
         <!-- 最下面的2个按钮 -->
         <div class="bot_btn">
-            <el-button type="primary">提 交</el-button>
+            <el-button type="primary" @click="submit(mydata.id)">提 交</el-button>
              <el-button @click="$router.go(-1)">返 回</el-button>
         </div>
       </div>
     </div>
     <!-- 点击添加出现弹窗 -->
-    <Holding0Dialog :dialogFormVisible.sync='isShow' @updateUI='getHoldingList(mydata)'/>
+    <Holding0Dialog :dialogFormVisible.sync='isShow' @updateUI='getHoldingList(mydata.id)' :registerId='mydata.id'/>
     <!-- 点击编辑出现弹窗 -->
-    <Holding0DiaEdit :dialogFormVisible.sync='isShowED' ref="myDia" @updateUI='getHoldingList(mydata)'/>
+    <Holding0DiaEdit :dialogFormVisible.sync='isShowED' ref="myDia" @updateUI='getHoldingList(mydata.id)' :registerId='mydata.id'/>
   </div>
 </template>
 
 <script>
 import axios from '@/utils/request'
-import { getHoldingList, removeOne } from '@/apis/holding'
+import { getHoldingList, removeOne, getGoodsFrom, addSubmit } from '@/apis/holding'
 import TabList from '@/components/tabLeft.vue'
 import Holding0Dialog from './holding0_Dialog.vue'
 import Holding0DiaEdit from './holding0_DiaEdit.vue'
@@ -124,42 +122,34 @@ export default {
   },
   data () {
     return {
+      // 第一层新增的数据
+      mydata: [],
       // 服务器前缀地址
       baseURL: '',
-      // 请求藏品登记列表参数
-      mydata: {
-        startTime: '', // 开始时间
-        endTime: '', // 结束时间
-        pageNum: 1, // 起始页码,默认1为第一页
-        pageSize: 10, // 每页数量
-        searchKey: '', // 搜索条件
-        status: '', // 状态
-        type: '' // 类型
-      },
       // 控制弹出层显示隐藏
       isShowED: false,
       isShow: false,
       // 表单数据
       fromData: {
-        number: 'DJ2021081701',
+        number: '',
         people: '',
-        source: '',
+        sourceId: 1, // 藏品来源
         unit: '',
-        textarea: ''
+        description: ''
       },
       // 表单验证
       rules: {
         number: [{ required: true, message: '不能为空', trigger: 'blur' }],
         people: [{ required: true, message: '不能为空', trigger: 'blur' }],
-        source: [{ required: true, message: '不能为空', trigger: 'blur' }],
         unit: [
           { required: true, message: '不能为空', trigger: 'blur' },
           { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }],
-        textarea: [{ max: 255, message: '不能超过255个字符', trigger: 'blur' }]
+        description: [{ max: 255, message: '不能超过255个字符', trigger: 'blur' }]
       },
       // 表格数据
-      tableData: []
-
+      tableData: [],
+      // 藏品来源多选数据
+      sourceList: []
     }
   },
   // 监听属性 类似于data概念
@@ -168,6 +158,15 @@ export default {
   watch: {},
   // 方法集合
   methods: {
+    // 点击提交
+    async submit (id) {
+      const res = await addSubmit({ ...this.fromData, id: this.mydata.id })
+      if (res.code === 0) {
+        this.$message.success('提交成功')
+        this.$router.push('/layout/holding0')
+      }
+      // console.log(6666, res)
+    },
     // 点击编辑
     edit (id) {
       this.$refs.myDia.detailsById(id)
@@ -186,7 +185,7 @@ export default {
           type: 'success',
           message: '删除成功!'
         })
-        this.getHoldingList(this.mydata)
+        this.getHoldingList(this.mydata.id)
       }).catch(() => {
         this.$message({
           type: 'info',
@@ -197,8 +196,8 @@ export default {
     // 获取藏品登记列表
     async getHoldingList (data) {
       const res = await getHoldingList(data)
-      // console.log(res)
-      this.tableData = res.data.list
+      // console.log(6666666, res)
+      this.tableData = res.data
       this.tableData.forEach(v => {
         v.goodsTypeId = this.category(v.goodsTypeId)
         v.integrity = this.spoil(v.integrity)
@@ -210,14 +209,23 @@ export default {
     }
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
+  async created () {
+    // 拿到从第一层点击新增传递过来的num和id
+    this.mydata = this.$route.query
+    this.mydata.id = Number(this.mydata.id)
+    this.fromData.number = this.mydata.num
+
     // 获取服务器前缀地址
     this.baseURL = axios.defaults.baseURL
     // 调用藏品登记方法
-    this.getHoldingList(this.mydata)
+    this.getHoldingList(this.mydata.id)
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
+  async mounted () {
+    // 获取藏品来源多选数据
+    const res = await getGoodsFrom()
+    this.sourceList = res.data
+    // console.log(6666, res.data)
     // 获取用户名
     let userData = localStorage.getItem('daliCK')
     userData = JSON.parse(userData)

+ 30 - 24
src/views/holding/holding0_audit.vue

@@ -15,25 +15,25 @@
         <div class="info">
           <div>
             <h4>登记编号:</h4>
-            <span>DJ2021081701</span>
+            <span>{{myData.num}}</span>
           </div>
           <div>
             <h4>登记人员:</h4>
-            <span>Admin</span>
+            <span>{{myData.realName}}</span>
           </div>
           <div>
             <h4>藏品来源:</h4>
-            <span>考古发掘与采集</span>
+            <span>{{myData.sourceName}}</span>
           </div>
           <div>
             <h4>单位或个人:</h4>
-            <span>个人</span>
+            <span>{{myData.unit}}</span>
           </div>
         </div>
         <div class="explain">
           <p>
             <span>登记说明:</span
-            >考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集考古发掘与采集
+            >{{myData.description}}
           </p>
         </div>
         <!-- 表格 -->
@@ -54,12 +54,12 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column prop="name" label="总登记号" width="235">
+            <el-table-column prop="registerNum" label="总登记号" width="235">
             </el-table-column>
-            <el-table-column prop="address" label="藏品名称"> </el-table-column>
-            <el-table-column prop="name" label="类别" width="130">
+            <el-table-column prop="name" label="藏品名称"> </el-table-column>
+            <el-table-column prop="goodsTypeId" label="类别" width="130">
             </el-table-column>
-            <el-table-column prop="name" label="完残程度" width="220">
+            <el-table-column prop="integrity" label="完残程度" width="220">
             </el-table-column>
             <el-table-column label="操作" width="130">
               <template #default>
@@ -111,8 +111,8 @@
 </template>
 
 <script>
+import { getHoldingList } from '@/apis/holding'
 import TabList from '@/components/tabLeft.vue'
-
 import Holding0AuditDia from './holding0_audit_Dia.vue'
 export default {
   name: 'holding0_audit',
@@ -121,6 +121,8 @@ export default {
   data () {
     // 这里存放数据
     return {
+      // 数据显示
+      myData: {},
       // 点击查看显示弹窗
       isShow: false,
       fromData: {
@@ -131,18 +133,7 @@ export default {
       },
       auditResult: '',
       // 表格数据
-      tableData: [
-        {
-          date: '2016-05-03',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1518 弄'
-        },
-        {
-          date: '2016-05-02',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1518 弄'
-        }
-      ]
+      tableData: []
     }
   },
   // 监听属性 类似于data概念
@@ -151,14 +142,29 @@ export default {
   watch: {},
   // 方法集合
   methods: {
+    // 通过id获取藏品列表
+    async getHoldingList (id) {
+      const res = await getHoldingList(id)
+      // console.log(6666, res)
+      this.tableData = res.data
+      this.tableData.forEach(v => {
+        v.goodsTypeId = this.category(v.goodsTypeId)
+        v.integrity = this.spoil(v.integrity)
+      })
+    },
     skip (index) {
       this.$router.push(`/layout/holding${index}`).catch(() => {})
     }
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {},
+  created () {
+  },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {},
+  mounted () {
+    // 拿到路由跳转传过来的数据
+    this.myData = this.$route.query
+    this.getHoldingList(this.myData.id)
+  },
   beforeCreate () {}, // 生命周期 - 创建之前
   beforeMount () {}, // 生命周期 - 挂载之前
   beforeUpdate () {}, // 生命周期 - 更新之前