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

+ 29 - 0
src/apis/holding.js

@@ -0,0 +1,29 @@
+import axios from '../utils/request'
+// 藏品登记-列表
+export const getHoldingList = (data) => {
+  return axios({
+    method: 'post',
+    url: '/cms/goods/list',
+    data
+  })
+}
+// 新增/修改
+export const holdingAdd = (data) => {
+  return axios({
+    method: 'post',
+    url: '/cms/goods/save',
+    data
+  })
+}
+// 获取文物编号类型
+export const getGoodsNumType = () => {
+  return axios({
+    url: '/cms/goods/base/getGoodsNumType'
+  })
+}
+// 获取文物类型
+export const getGoodsType = () => {
+  return axios({
+    url: '/cms/goods/base/getGoodsType'
+  })
+}

+ 2 - 2
src/router/index.js

@@ -197,8 +197,6 @@ const router = new VueRouter({
   ]
 })
 
-export default router
-
 router.beforeEach((to, from, next) => {
   // 如果是去登录页,不需要验证,直接下一步
   if (to.name === 'login') next()
@@ -209,3 +207,5 @@ router.beforeEach((to, from, next) => {
     else next({ name: 'login' })
   }
 })
+
+export default router

+ 9 - 5
src/utils/request.js

@@ -1,17 +1,18 @@
 import axios from 'axios'
 // export const baseURL = '666初始地址'
-export default axios.create({
+const service = axios.create({
   baseURL: 'http://192.168.0.135:8004',
   timeout: 5000
 })
 
 // 请求拦截器
-axios.interceptors.request.use(function (config) {
+service.interceptors.request.use(function (config) {
+  // console.log('触发拦截器')
   // 在发送请求之前做些什么:看看有没有token,如果有通过请求头的方式传递token
   const token = localStorage.getItem('daliCK_token')
   if (token) { // 判断是否有token,有,则
     // config.headers['Authorization'] = token
-    config.headers.Authorization = `Bearer ${token}`
+    config.headers.token = token
   }
 
   return config
@@ -21,15 +22,18 @@ axios.interceptors.request.use(function (config) {
 })
 
 // 添加响应拦截器
-axios.interceptors.response.use(function (response) {
+service.interceptors.response.use(function (response) {
+  // console.log('触发相应拦截器')
   // 对响应数据做点什么--response就是发送每个请求的返回值
   // if (response.data.message === '用户信息验证失败') {
   //   // Toast.fail('未登录,请先登录')
   //   // 登录完之后能返回刚刚的页面
   //   location.href = '#/login?redirectUrl=' + location.href
   // }
-  return response
+  return response.data
 }, function (error) {
   // 对响应错误做点什么
   return Promise.reject(error)
 })
+
+export default service

+ 24 - 17
src/views/holding/holding0.vue

@@ -50,7 +50,7 @@
               border
               style="width: 100%"
             >
-              <el-table-column prop="date" label="登记编号" width="130">
+              <el-table-column prop="registerNum" label="登记编号" width="130">
               </el-table-column>
               <el-table-column prop="name" label="藏品来源" width="150">
               </el-table-column>
@@ -58,11 +58,11 @@
               </el-table-column>
               <el-table-column prop="name" label="登记人员" width="110">
               </el-table-column>
-              <el-table-column prop="name" label="创建日期" width="130">
+              <el-table-column prop="createTime" label="创建日期" width="200">
               </el-table-column>
-              <el-table-column prop="name" label="完成日期" width="130">
+              <el-table-column prop="updateTime" label="完成日期" width="200">
               </el-table-column>
-              <el-table-column prop="name" label="状态" width="130">
+              <el-table-column prop="status" label="状态" width="130">
               </el-table-column>
               <el-table-column label="操作" width="150">
                 <template #default>
@@ -90,6 +90,7 @@
 </template>
 
 <script>
+import { getHoldingList } from '@/apis/holding'
 import TabList from '@/components/tabLeft.vue'
 export default {
   name: 'Holding0',
@@ -98,6 +99,16 @@ export default {
   },
   data () {
     return {
+      // 请求藏品登记参数
+      mydata: {
+        startTime: '', // 开始时间
+        endTime: '', // 结束时间
+        pageNum: 1, // 起始页码,默认1为第一页
+        pageSize: 10, // 每页数量
+        searchKey: '', // 搜索条件
+        status: '', // 状态
+        type: ''// 类型
+      },
       sourceVal: '',
       type: '',
       time: '',
@@ -112,18 +123,7 @@ export default {
         }
       ],
       // 表格数据
-      tableData: [
-        {
-          date: '2016-05-03',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1518 弄'
-        },
-        {
-          date: '2016-05-02',
-          name: '王小虎',
-          address: '上海市普陀区金沙江路 1518 弄'
-        }
-      ]
+      tableData: []
     }
   },
   // 监听属性 类似于data概念
@@ -132,13 +132,20 @@ export default {
   watch: {},
   // 方法集合
   methods: {
-
+    // 获取藏品登记列表
+    async getHoldingList (data) {
+      const res = await getHoldingList(data)
+      console.log(res)
+      this.tableData = res.data.list
+    }
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
   created () {},
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
     this.tabInd = this.INtabInd
+    // 调用藏品登记方法
+    this.getHoldingList(this.mydata)
   },
   beforeCreate () {}, // 生命周期 - 创建之前
   beforeMount () {}, // 生命周期 - 挂载之前

+ 177 - 100
src/views/holding/holding0_Dialog.vue

@@ -12,35 +12,39 @@
         <el-form-item label="藏品名称:" prop="name">
           <el-input v-model="ruleForm.name" placeholder="请输入"></el-input>
         </el-form-item>
-        <el-form-item label="总登记号:" prop="number">
-          <el-input v-model="ruleForm.number" placeholder="请输入"></el-input>
+        <el-form-item label="总登记号:" prop="registerNum">
+          <el-input
+            v-model="ruleForm.registerNum"
+            placeholder="请输入"
+          ></el-input>
         </el-form-item>
       </div>
       <div class="row">
         <el-form-item label="编号类型:">
           <el-select
-            v-model="ruleForm.type"
+            v-model="ruleForm.numTypeId"
             placeholder="请选择"
             style="width: 100%"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
+            <el-option v-for="item in numType" :key="item.id" :label="item.name" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="藏品编号:">
           <el-input
             v-model="ruleForm.control"
-            :placeholder="ruleForm.type ? '请输入' : '请先选择类型'"
-            :disabled="ruleForm.type ? false : true"
+            placeholder="请输入"
           ></el-input>
         </el-form-item>
       </div>
       <div class="row">
         <el-form-item label="原名:">
-          <el-input v-model="ruleForm.oldName" placeholder="请输入"></el-input>
+          <el-input
+            v-model="ruleForm.primitiveName"
+            placeholder="请输入"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="年代:">
-          <el-input v-model="ruleForm.yeah" placeholder="请输入"></el-input>
+        <el-form-item label="年代:" prop="age">
+          <el-input v-model="ruleForm.age" placeholder="请输入"></el-input>
         </el-form-item>
       </div>
       <div class="row">
@@ -50,89 +54,118 @@
             placeholder="请选择"
             style="width: 100%"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
+            <el-option v-for="item in objectType" :key="item.id" :label="item.name" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="文物质地:">
+        <el-form-item label="文物级别:">
           <el-select
-            v-model="ruleForm.grain"
+            v-model="ruleForm.level"
             placeholder="请选择"
             style="width: 100%"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
+            <el-option label="三级" :value="3"></el-option>
+            <el-option label="二级" :value="2"></el-option>
+            <el-option label="一级" :value="1"></el-option>
+            <el-option label="一般" :value="0"></el-option>
+            <el-option label="未定级" :value="-1"></el-option>
           </el-select>
         </el-form-item>
       </div>
-      <div class="row">
-        <el-form-item label="数量:">
-          <el-input v-model="ruleForm.count" placeholder="请输入"></el-input>
-        </el-form-item>
-        <el-form-item label="具体数量:">
-          <el-input
-            v-model="ruleForm.countOnly"
-            placeholder="请输入"
+        <div class="row">
+          <el-form-item label="文物质地:">
+            <el-select
+              v-model="ruleForm.textureType"
+              placeholder="质地类型"
+              style="width: 100%"
+            >
+              <el-option label="单一质地" :value="0"></el-option>
+              <el-option label="复合质地" :value="1"></el-option>
+            </el-select>
+          </el-form-item>
+                    <el-input
+                    style="margin:0 20px"
+            v-model="ruleForm.textureCategory"
+            placeholder="质地类别"
           ></el-input>
-        </el-form-item>
-      </div>
-      <div class="row">
-        <el-form-item label="通长:">
-          <el-input v-model="ruleForm.long" placeholder="请输入"></el-input>
-        </el-form-item>
-        <el-form-item label="通宽:">
-          <el-input v-model="ruleForm.wide" placeholder="请输入"></el-input>
-        </el-form-item>
-        <el-form-item label="通高:">
-          <el-input v-model="ruleForm.tall" placeholder="请输入"></el-input>
-        </el-form-item>
-      </div>
-      <div class="row">
-        <el-form-item label="文物级别:">
+                      <el-input
+            v-model="ruleForm.texture"
+            placeholder="质地"
+          ></el-input>
+
+        </div>
+        <div class="row">
+          <el-form-item label="外形尺寸:" prop="length">
+          <el-input v-model="ruleForm.length" placeholder="长(cm)" style="width:30%"></el-input>
+          <el-input v-model="ruleForm.width" placeholder="宽(cm)" style="width:30%;margin:0 20px"></el-input>
+          <el-input v-model="ruleForm.height" placeholder="高(cm)" style="width:30%"></el-input>
+          </el-form-item>
+        </div>
+        <div class="row">
+        <el-form-item label="完残程度:">
           <el-select
-            v-model="ruleForm.rank"
+            v-model="ruleForm.integrity"
             placeholder="请选择"
             style="width: 100%"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
+            <el-option label="完整" :value="1"></el-option>
+            <el-option label="基本完整" :value="0"></el-option>
+            <el-option label="残缺" :value="-1"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="具体质量:">
-          <el-input v-model="ruleForm.quality" placeholder="请输入"></el-input>
-        </el-form-item>
-      </div>
-      <div class="row">
-        <el-form-item label="文物价格:">
-          <el-input v-model="ruleForm.price" placeholder="请输入"></el-input>
-        </el-form-item>
-
-        <el-form-item label="完残程度:">
+                <el-form-item label="保存状态:">
           <el-select
-            v-model="ruleForm.cruel"
+            v-model="ruleForm.repair"
             placeholder="请选择"
             style="width: 100%"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
+            <el-option label="已修复" :value="3"></el-option>
+            <el-option label="继续修复" :value="2"></el-option>
+            <el-option label="需要修复" :value="1"></el-option>
+            <el-option label="不需修复" :value="0"></el-option>
           </el-select>
         </el-form-item>
-      </div>
 
+        </div>
       <div class="row">
-        <el-form-item label="保存状态:">
+        <el-form-item label="数量类型:">
           <el-select
-            v-model="ruleForm.state"
+            v-model="ruleForm.amountType"
             placeholder="请选择"
             style="width: 100%"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
+            <el-option label="一套多件" :value="1"></el-option>
+            <el-option label="单件" :value="0"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="具体数量:">
+          <el-input
+            v-model="ruleForm.countOnly"
+            placeholder="请输入"
+          ></el-input>
+        </el-form-item>
+      </div>
+
+      <div class="row">
+                  <el-form-item label="质量范围:">
+            <el-select
+              v-model="ruleForm.qualityScope"
+              placeholder="请选择"
+              style="width: 100%"
+            >
+              <el-option label="单一质地" :value="0"></el-option>
+              <el-option label="复合质地" :value="1"></el-option>
+            </el-select>
+          </el-form-item>
+
+        <el-form-item label="具体质量:">
+          <el-input v-model="ruleForm.quality" placeholder="请输入"></el-input>
+        </el-form-item>
+      </div>
+
+      <div class="row">
         <el-form-item label="入藏时间范围:">
           <el-select
-            v-model="ruleForm.scope"
+            v-model="ruleForm.checkInScope"
             placeholder="请选择"
             style="width: 100%"
           >
@@ -140,10 +173,14 @@
             <el-option label="区域二" value="beijing"></el-option>
           </el-select>
         </el-form-item>
+                <el-form-item label="入藏年度:">
+          <el-input v-model="ruleForm.checkInYear" placeholder="请输入"></el-input>
+        </el-form-item>
+
       </div>
       <!-- 图片和附件 -->
-      <el-form-item label="藏品图片:">
-        <el-upload action="#" list-type="picture-card" :auto-upload="false">
+      <!-- <el-form-item label="藏品图片:">
+        <el-upload action="http://192.168.0.135:8004/cms/goods/uploadImg" list-type="picture-card" :auto-upload="false" @on-success='onSuccess'>
           <i slot="default" class="el-icon-plus"></i>
           <div slot="file" slot-scope="{ file }">
             <img
@@ -179,7 +216,20 @@
         <el-dialog :visible.sync="dialogVisible">
           <img width="100%" :src="dialogImageUrl" alt="" />
         </el-dialog>
-      </el-form-item>
+      </el-form-item> -->
+
+            <el-form-item label="展示封面:">
+               <Cropper
+                  :width="512"
+                  :height="512"
+                  :fixed-number="[1,1]"
+                  :uploadUrl = "'/exhibition/upload'"
+                  :img="form.pic"
+                  @clearImg="form.pic=''"
+                  @subUploadSucceed="getShopImages"
+              />
+              <span class="wwtxt" style="color:#C0C4CC">建议上传512*512的png格式图片</span>
+            </el-form-item>
 
       <el-form-item label="上传附件:">
         <el-select v-model="uploading" placeholder="请选择">
@@ -203,12 +253,12 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="name" label="附件名称">
+      <el-table-column prop="name" label="附件名称"> </el-table-column>
+      <el-table-column prop="address" label="上传时间" width="150">
       </el-table-column>
-      <el-table-column prop="address" label="上传时间" width="150"> </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>
         </template>
       </el-table-column>
@@ -221,6 +271,7 @@
 </template>
 
 <script>
+import { holdingAdd, getGoodsNumType, getGoodsType } from '@/apis/holding'
 export default {
   name: 'Holding0_Dialog',
   components: {},
@@ -233,29 +284,45 @@ export default {
   data () {
     return {
       ruleForm: {
-        name: '',
-        number: '',
-        type: '',
-        control: '',
-        oldName: '',
-        yeah: '',
-        category: '',
-        grain: '',
-        count: '',
-        countOnly: '',
-        long: '',
-        wide: '',
-        tall: '',
-        rank: '',
-        quality: '',
-        price: '',
-        cruel: '',
-        state: '',
-        scope: ''
+        age: '', // 年代
+        amount: '', // 数量
+        amountType: 0, // 数量类型, 0:单件, 1:一套多件
+        checkInScope: '', // 入藏时间范围
+        checkInYear: '', // 入藏年底
+        dirCode: 'daliCK', // 目录码
+        fileIds: '', // 图片类型使用,文件id, 多个以逗号分隔
+        goodsTypeId: '', // 文物类型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: '', // 质量范围
+        registerNum: '', // 总登记号
+        repair: 3, // 保存状态(修复状态), 0:不需修复, 1:需要修复,2:继续修复, 3:已修复
+        texture: '', // 质地
+        textureCategory: '', // 质地类别
+        textureType: 0, // 质地类型,前端输入, 0:单一质地, 1:复活质地
+        thumb: '', // 缩略图url
+        width: '', // 宽
+        control: '', //
+        category: 1, //
+        countOnly: '', //
+        scope: '' //
       },
+      objectType: [], // 文物类型
+      numType: [], // 文物编号类型
       rules: {
         name: [{ required: true, message: '不能为空', trigger: 'blur' }],
-        number: [{ required: true, message: '不能为空', trigger: 'blur' }]
+        registerNum: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        age: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        length: [{ required: true, message: '不能为空', trigger: 'blur' }]
       },
       // 上传图片和文件
       uploading: 'GQpicture',
@@ -275,7 +342,6 @@ export default {
           address: '上海市普陀区金沙江路 1518 弄'
         }
       ]
-
     }
   },
   // 监听属性 类似于data概念
@@ -285,7 +351,9 @@ export default {
   // 方法集合
   methods: {
     // 点击确定
-    btnOK () {
+    async btnOK () {
+      console.log(this.ruleForm)
+      await holdingAdd(this.ruleForm)
       this.cancel()
     },
     // 点击取消
@@ -293,19 +361,29 @@ export default {
       this.$emit('update:dialogFormVisible', false)
     },
     // 上传文件和图片
+    onSuccess (response, file, fileList) {
+      console.log('文件上传成功', file, fileList)
+    },
     handleRemove (file) {
-      console.log(file)
+      console.log(111111, file)
     },
     handlePictureCardPreview (file) {
       this.dialogImageUrl = file.url
       this.dialogVisible = true
     },
     handleDownload (file) {
-      console.log(file)
+      console.log(222222222, file)
     }
   },
   created () {},
-  mounted () {},
+  async mounted () {
+    // 获取文物编号类型
+    const res = await getGoodsNumType()
+    this.numType = res.data
+    // 获取文物类型
+    const res2 = await getGoodsType()
+    this.objectType = res2.data
+  },
   beforeCreate () {}, // 生命周期 - 创建之前
   beforeMount () {}, // 生命周期 - 挂载之前
   beforeUpdate () {}, // 生命周期 - 更新之前
@@ -326,13 +404,12 @@ export default {
     flex: 1;
   }
 }
-  .smimg{
-    height: 80px;
-    img {
-      width: 100%;
-      height: 100%;
-      border: 3px solid #ccc;
-    }
+.smimg {
+  height: 80px;
+  img {
+    width: 100%;
+    height: 100%;
+    border: 3px solid #ccc;
   }
-
+}
 </style>

+ 4 - 4
src/views/login/index.vue

@@ -61,12 +61,12 @@ export default {
         await this.$refs.ruleForm.validate()
         const res = await userLogin(this.ruleForm)
         // console.log(res)
-        if (res.data.code === 0) {
-          localStorage.setItem('daliCK', JSON.stringify(res.data.data))
-          localStorage.setItem('daliCK_token', res.data.data.token)
+        if (res.code === 0) {
+          localStorage.setItem('daliCK', JSON.stringify(res.data))
+          localStorage.setItem('daliCK_token', res.data.token)
           this.$router.push('/layout/home')
           this.$message.success('登录成功')
-        } else this.$message.error(res.data.msg)
+        } else this.$message.error(res.msg)
       } catch (error) {
         console.log(error)
       }