shaogen1995 3 年 前
コミット
02dd15ab2a

ファイルの差分が大きいため隠しています
+ 15905 - 18
package-lock.json


+ 1 - 0
package.json

@@ -18,6 +18,7 @@
     "moment": "^2.29.1",
     "moment": "^2.29.1",
     "vue": "^2.6.11",
     "vue": "^2.6.11",
     "vue-json-excel": "^0.3.0",
     "vue-json-excel": "^0.3.0",
+    "vue-lazyload": "^1.3.3",
     "vue-router": "^3.2.0"
     "vue-router": "^3.2.0"
   },
   },
   "devDependencies": {
   "devDependencies": {

+ 15 - 0
src/apis/system2.js

@@ -39,3 +39,18 @@ export const getRole = () => {
     url: '/sys/user/getRole'
     url: '/sys/user/getRole'
   })
   })
 }
 }
+// 点击授权
+export const resourceTreeApi = (id) => {
+  return axios({
+    method: 'get',
+    url: `/sys/user/resourceTree/${id}`
+  })
+}
+// 点击授权弹窗的确定
+export const resourceTreeOk = (data) => {
+  return axios({
+    method: 'post',
+    url: '/sys/user/authorize',
+    data
+  })
+}

BIN
src/assets/img/loading.gif


+ 1 - 0
src/components/tabLeft.vue

@@ -65,6 +65,7 @@ export default {
     min-width: 150px;
     min-width: 150px;
     height: calc(100vh - 68px);
     height: calc(100vh - 68px);
     background-color: #fff;
     background-color: #fff;
+    min-height: 830px;
     ul {
     ul {
       li {
       li {
         cursor: pointer;
         cursor: pointer;

+ 1 - 0
src/components/tabLeft2.vue

@@ -50,6 +50,7 @@ export default {
     min-width: 150px;
     min-width: 150px;
     height: calc(100vh - 68px);
     height: calc(100vh - 68px);
     background-color: #fff;
     background-color: #fff;
+    min-height: 830px;
     ul {
     ul {
       li {
       li {
         cursor: pointer;
         cursor: pointer;

+ 1 - 0
src/components/tabLeft3.vue

@@ -56,6 +56,7 @@ export default {
     min-width: 150px;
     min-width: 150px;
     height: calc(100vh - 68px);
     height: calc(100vh - 68px);
     background-color: #fff;
     background-color: #fff;
+    min-height: 830px;
     ul {
     ul {
       li {
       li {
         cursor: pointer;
         cursor: pointer;

+ 2 - 1
src/components/tabLeft4.vue

@@ -25,7 +25,7 @@ export default {
     return {
     return {
       tabList: [
       tabList: [
         { name: '用户管理', id: 2 },
         { name: '用户管理', id: 2 },
-        { name: '角色管理', id: 3 },
+        // { name: '角色管理', id: 3 },
         { name: '系统日志', id: 1 }
         { name: '系统日志', id: 1 }
       ]
       ]
     }
     }
@@ -43,6 +43,7 @@ export default {
     min-width: 150px;
     min-width: 150px;
     height: calc(100vh - 68px);
     height: calc(100vh - 68px);
     background-color: #fff;
     background-color: #fff;
+    min-height: 830px;
     ul {
     ul {
       li {
       li {
         cursor: pointer;
         cursor: pointer;

+ 6 - 0
src/main.js

@@ -5,8 +5,14 @@ import './assets/style/initial.css'
 import App from './App.vue'
 import App from './App.vue'
 import router from './router'
 import router from './router'
 import 'default-passive-events'
 import 'default-passive-events'
+// 图片懒加载
+import VueLazyLoad from 'vue-lazyload'
 // 表格导出
 // 表格导出
 import JsonExcel from 'vue-json-excel'
 import JsonExcel from 'vue-json-excel'
+Vue.use(VueLazyLoad, {
+  error: require('./assets/img/IMGerror.png'),
+  loading: require('./assets/img/loading.gif')
+})
 Vue.component('downloadExcel', JsonExcel)
 Vue.component('downloadExcel', JsonExcel)
 Vue.config.productionTip = false
 Vue.config.productionTip = false
 
 

+ 2 - 2
src/utils/request.js

@@ -2,8 +2,8 @@ import axios from 'axios'
 // export const baseURL = '666初始地址'
 // export const baseURL = '666初始地址'
 const service = axios.create({
 const service = axios.create({
   // baseURL: 'http://192.168.0.135:8006', // 本地调试
   // baseURL: 'http://192.168.0.135:8006', // 本地调试
-  baseURL: 'http://8.135.106.227:8006', // 线上调试
-  // baseURL: '', // build
+  // baseURL: 'http://8.135.106.227:8006', // 线上调试
+  baseURL: '', // build
   timeout: 5000
   timeout: 5000
 })
 })
 
 

+ 177 - 107
src/views/holding/holding0_add.vue

@@ -1,7 +1,6 @@
 <template>
 <template>
   <div class="holdingAdd">
   <div class="holdingAdd">
-
-<TabList />
+    <TabList />
     <div class="right">
     <div class="right">
       <div class="top">
       <div class="top">
         <el-breadcrumb separator="/">
         <el-breadcrumb separator="/">
@@ -9,7 +8,9 @@
           <el-breadcrumb-item to="">首页</el-breadcrumb-item>
           <el-breadcrumb-item to="">首页</el-breadcrumb-item>
           <el-breadcrumb-item to="">馆藏管理</el-breadcrumb-item>
           <el-breadcrumb-item to="">馆藏管理</el-breadcrumb-item>
           <el-breadcrumb-item>藏品登记</el-breadcrumb-item>
           <el-breadcrumb-item>藏品登记</el-breadcrumb-item>
-          <el-breadcrumb-item id="mytitle">{{mydata.unit?'编辑':'新增'}}</el-breadcrumb-item>
+          <el-breadcrumb-item id="mytitle">{{
+            mydata.unit ? "编辑" : "新增"
+          }}</el-breadcrumb-item>
         </el-breadcrumb>
         </el-breadcrumb>
       </div>
       </div>
       <div class="conten">
       <div class="conten">
@@ -30,26 +31,40 @@
           </div>
           </div>
           <div class="tow_row">
           <div class="tow_row">
             <el-form-item label="藏品来源" prop="sourceId" style="width: 45%">
             <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
+                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-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="单位或个人" prop="unit" style="width: 45%">
             <el-form-item label="单位或个人" prop="unit" style="width: 45%">
               <el-input v-model="fromData.unit" placeholder="请输入"></el-input>
               <el-input v-model="fromData.unit" placeholder="请输入"></el-input>
             </el-form-item>
             </el-form-item>
           </div>
           </div>
-            <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-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>
         </el-form>
         <!-- 藏品信息 -->
         <!-- 藏品信息 -->
         <div class="info">
         <div class="info">
           <div class="title">
           <div class="title">
-             <h3>藏品信息</h3>
-             <div class="btn">
-               <el-button size="small" @click="isShow=true">添 加</el-button>
-               <el-button size="small" @click="batchDel">删 除</el-button>
-             </div>
+            <h3>藏品信息</h3>
+            <div class="btn">
+              <el-button size="small" @click="isShow = true">添 加</el-button>
+              <el-button size="small" @click="batchDel">删 除</el-button>
+            </div>
           </div>
           </div>
           <!--表格 -->
           <!--表格 -->
           <div class="table">
           <div class="table">
@@ -60,37 +75,55 @@
               border
               border
               style="width: 100%"
               style="width: 100%"
             >
             >
-             <el-table-column
-             :resizable="false"
-      type="selection"
-      width="40">
-    </el-table-column>
+              <el-table-column :resizable="false" type="selection" width="40">
+              </el-table-column>
               <el-table-column label="缩略图" width="146" :resizable="false">
               <el-table-column label="缩略图" width="146" :resizable="false">
-                <template #default="{row}">
+                <template #default="{ row }">
                   <div class="smimg">
                   <div class="smimg">
-                    <img :src="baseURL+row.thumb" alt="" :onerror='defaultImg'/>
+                    <img
+                      :src="baseURL + row.thumb"
+                      alt=""
+                      :onerror="defaultImg"
+                    />
                   </div>
                   </div>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
               <el-table-column
               <el-table-column
-              :resizable="false"
+                :resizable="false"
                 prop="registerNum"
                 prop="registerNum"
                 label="总登记号"
                 label="总登记号"
                 width="235"
                 width="235"
               >
               >
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="name"  label="藏品名称" :resizable="false">
+              <el-table-column prop="name" label="藏品名称" :resizable="false">
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="goodsTypeId"  label="类别" width="130" :resizable="false">
+              <el-table-column
+                prop="goodsTypeId"
+                label="类别"
+                width="130"
+                :resizable="false"
+              >
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="integrity"  label="完残程度" width="220" :resizable="false">
+              <el-table-column
+                prop="integrity"
+                label="完残程度"
+                width="220"
+                :resizable="false"
+              >
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="age" label="藏品年代" width="130" :resizable="false">
+              <el-table-column
+                prop="age"
+                label="藏品年代"
+                width="130"
+                :resizable="false"
+              >
               </el-table-column>
               </el-table-column>
               <el-table-column label="操作" width="130" :resizable="false">
               <el-table-column label="操作" width="130" :resizable="false">
-                <template #default="{row}">
+                <template #default="{ row }">
                   <el-button type="text" @click="edit(row.id)">编 辑</el-button>
                   <el-button type="text" @click="edit(row.id)">编 辑</el-button>
-                  <el-button type="text" @click="deletes(row.id)">删 除</el-button>
+                  <el-button type="text" @click="deletes(row.id)"
+                    >删 除</el-button
+                  >
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
             </el-table>
             </el-table>
@@ -98,21 +131,39 @@
         </div>
         </div>
         <!-- 最下面的2个按钮 -->
         <!-- 最下面的2个按钮 -->
         <div class="bot_btn">
         <div class="bot_btn">
-            <el-button type="primary" @click="submit(mydata.id)">提 交</el-button>
-             <el-button @click="goBack(mydata.id)">返 回</el-button>
+          <el-button type="primary" @click="submit(mydata.id)">提 交</el-button>
+          <el-button @click="goBack(mydata.id)">返 回</el-button>
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
     <!-- 点击添加出现弹窗 -->
     <!-- 点击添加出现弹窗 -->
-    <Holding0Dialog :dialogFormVisible.sync='isShow' @updateUI='getHoldingList(mydata.id)' :registerId='mydata.id' :fujianId='fujianId' :dirCode='Date.now()' :key="Date.now()"/>
+    <Holding0Dialog
+      :dialogFormVisible.sync="isShow"
+      @updateUI="getHoldingList(mydata.id)"
+      :registerId="mydata.id"
+      :fujianId="fujianId"
+      :dirCode="Date.now()"
+      :key="Date.now()"
+    />
     <!-- 点击编辑出现弹窗 -->
     <!-- 点击编辑出现弹窗 -->
-    <Holding0DiaEdit :dialogFormVisible.sync='isShowED' ref="myDia" @updateUI='getHoldingList(mydata.id)' :registerId='mydata.id' :fujianId='fujianId'/>
+    <Holding0DiaEdit
+      :dialogFormVisible.sync="isShowED"
+      ref="myDia"
+      @updateUI="getHoldingList(mydata.id)"
+      :registerId="mydata.id"
+      :fujianId="fujianId"
+    />
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
 import axios from '@/utils/request'
 import axios from '@/utils/request'
-import { getHoldingList, removeOne, getGoodsFrom, addSubmit } from '@/apis/holding'
+import {
+  getHoldingList,
+  removeOne,
+  getGoodsFrom,
+  addSubmit
+} from '@/apis/holding'
 import TabList from '@/components/tabLeft.vue'
 import TabList from '@/components/tabLeft.vue'
 import Holding0Dialog from './holding0_Dialog.vue'
 import Holding0Dialog from './holding0_Dialog.vue'
 import Holding0DiaEdit from './holding0_DiaEdit.vue'
 import Holding0DiaEdit from './holding0_DiaEdit.vue'
@@ -151,8 +202,12 @@ export default {
         people: [{ required: true, message: '不能为空', trigger: 'blur' }],
         people: [{ required: true, message: '不能为空', trigger: 'blur' }],
         unit: [
         unit: [
           { required: true, message: '不能为空', trigger: 'blur' },
           { required: true, message: '不能为空', trigger: 'blur' },
-          { max: 50, message: '不能超过50 个字符', trigger: 'blur' }],
-        description: [{ required: true, message: '不能为空', trigger: 'blur' }, { max: 255, message: '不能超过255个字符', trigger: 'blur' }]
+          { max: 50, message: '不能超过50 个字符', trigger: 'blur' }
+        ],
+        description: [
+          { required: true, message: '不能为空', trigger: 'blur' },
+          { max: 255, message: '不能超过255个字符', trigger: 'blur' }
+        ]
       },
       },
       // 表格数据
       // 表格数据
       tableData: [],
       tableData: [],
@@ -168,56 +223,67 @@ export default {
   methods: {
   methods: {
     // 点击返回
     // 点击返回
     goBack (id) {
     goBack (id) {
-      this.$confirm('您需要保存这条数据吗?', '提示', {
-        confirmButtonText: '保存',
-        cancelButtonText: '放弃',
-        type: 'warning'
-      }).then(async () => {
-        if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
-        if (this.fromData.unit.trim() === '') return this.$message.warning('单位或个人不能为空')
-        if (this.fromData.description.trim() === '') return this.$message.warning('登记说明不能为空')
-        if (this.fromData.description.length > 255) return this.$message.warning('登记说明不能超过255个字')
-        if (this.fromData.unit.length > 50) return this.$message.warning('单位或个人不能超过50个字')
-        // 发请求
-        this.fromData.status = null
-        await addSubmit({ ...this.fromData, id: this.mydata.id })
+      if (
+        this.mydata.status === '馆长不通过' ||
+        this.mydata.status === '主任不通过'
+      ) {
         this.$router.push('/layout/holding0')
         this.$router.push('/layout/holding0')
-        this.$message({
-          type: 'success',
-          message: '保存成功!'
+      } else {
+        this.$confirm('您需要保存这条数据吗?', '提示', {
+          confirmButtonText: '保存',
+          cancelButtonText: '放弃',
+          type: 'warning'
         })
         })
-      }).catch(() => {
-        this.$router.push('/layout/holding0')
-        this.$message({
-          type: 'info',
-          message: '放弃保存.'
-        })
-      })
+          .then(async () => {
+            if (this.tableData.length === 0) { return this.$message.warning('至少添加一条藏品信息') }
+            if (this.fromData.unit.trim() === '') { return this.$message.warning('单位或个人不能为空') }
+            if (this.fromData.description.trim() === '') { return this.$message.warning('登记说明不能为空') }
+            if (this.fromData.description.length > 255) { return this.$message.warning('登记说明不能超过255个字') }
+            if (this.fromData.unit.length > 50) { return this.$message.warning('单位或个人不能超过50个字') }
+            // 发请求
+            this.fromData.status = null
+            await addSubmit({ ...this.fromData, id: this.mydata.id })
+            this.$router.push('/layout/holding0')
+            this.$message({
+              type: 'success',
+              message: '保存成功!'
+            })
+          })
+          .catch(() => {
+            this.$router.push('/layout/holding0')
+            this.$message({
+              type: 'info',
+              message: '放弃保存.'
+            })
+          })
+      }
     },
     },
     // 点击提交
     // 点击提交
     submit (id) {
     submit (id) {
-      if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
-      if (this.fromData.unit.trim() === '') return this.$message.warning('单位或个人不能为空')
-      if (this.fromData.description.trim() === '') return this.$message.warning('登记说明不能为空')
-      if (this.fromData.description.length > 255) return this.$message.warning('登记说明不能超过255个字')
-      if (this.fromData.unit.length > 50) return this.$message.warning('单位或个人不能超过50个字')
+      if (this.tableData.length === 0) { return this.$message.warning('至少添加一条藏品信息') }
+      if (this.fromData.unit.trim() === '') { return this.$message.warning('单位或个人不能为空') }
+      if (this.fromData.description.trim() === '') { return this.$message.warning('登记说明不能为空') }
+      if (this.fromData.description.length > 255) { return this.$message.warning('登记说明不能超过255个字') }
+      if (this.fromData.unit.length > 50) { return this.$message.warning('单位或个人不能超过50个字') }
       this.$confirm('是否确认提交?', '提示', {
       this.$confirm('是否确认提交?', '提示', {
         confirmButtonText: '确定',
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonText: '取消',
         type: 'warning'
         type: 'warning'
-      }).then(async () => {
-        this.fromData.status = 1
-        const res = await addSubmit({ ...this.fromData, id: this.mydata.id })
-        if (res.code === 0) {
-          this.$message.success('提交成功')
-          this.$router.push('/layout/holding0')
-        }
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消提交'
-        })
       })
       })
+        .then(async () => {
+          this.fromData.status = 1
+          const res = await addSubmit({ ...this.fromData, id: this.mydata.id })
+          if (res.code === 0) {
+            this.$message.success('提交成功')
+            this.$router.push('/layout/holding0')
+          }
+        })
+        .catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消提交'
+          })
+        })
 
 
       // console.log(6666, res)
       // console.log(6666, res)
     },
     },
@@ -233,7 +299,7 @@ export default {
     handleSelectionChange (rows) {
     handleSelectionChange (rows) {
       // console.log(999, rows)
       // console.log(999, rows)
       const temp = []
       const temp = []
-      rows.forEach(v => {
+      rows.forEach((v) => {
         temp.push(v.id)
         temp.push(v.id)
       })
       })
       const temp2 = new Set(temp)
       const temp2 = new Set(temp)
@@ -246,20 +312,22 @@ export default {
         confirmButtonText: '确定',
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonText: '取消',
         type: 'warning'
         type: 'warning'
-      }).then(async () => {
-        // 发请求,清空数据
-        await removeOne(this.delIds.join(','))
-        this.$message({
-          type: 'success',
-          message: '删除成功!'
+      })
+        .then(async () => {
+          // 发请求,清空数据
+          await removeOne(this.delIds.join(','))
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          })
+          this.getHoldingList(this.mydata.id)
         })
         })
-        this.getHoldingList(this.mydata.id)
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消.'
+        .catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消.'
+          })
         })
         })
-      })
     },
     },
     // 点击删除单个
     // 点击删除单个
     async deletes (id) {
     async deletes (id) {
@@ -267,27 +335,29 @@ export default {
         confirmButtonText: '确定',
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         cancelButtonText: '取消',
         type: 'warning'
         type: 'warning'
-      }).then(async () => {
-        // 发请求,清空数据
-        await removeOne(id)
-        this.$message({
-          type: 'success',
-          message: '删除成功!'
+      })
+        .then(async () => {
+          // 发请求,清空数据
+          await removeOne(id)
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          })
+          this.getHoldingList(this.mydata.id)
         })
         })
-        this.getHoldingList(this.mydata.id)
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消.'
+        .catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消.'
+          })
         })
         })
-      })
     },
     },
     // 获取藏品登记列表
     // 获取藏品登记列表
     async getHoldingList (data) {
     async getHoldingList (data) {
       const res = await getHoldingList(data)
       const res = await getHoldingList(data)
       // console.log(6666666, res)
       // console.log(6666666, res)
       this.tableData = res.data
       this.tableData = res.data
-      this.tableData.forEach(v => {
+      this.tableData.forEach((v) => {
         v.goodsTypeId = this.category(v.goodsTypeId)
         v.goodsTypeId = this.category(v.goodsTypeId)
         v.integrity = this.spoil(v.integrity)
         v.integrity = this.spoil(v.integrity)
       })
       })
@@ -353,7 +423,7 @@ export default {
 <style lang='less' scoped>
 <style lang='less' scoped>
 //@import url(); 引入公共css类
 //@import url(); 引入公共css类
 .holdingAdd {
 .holdingAdd {
-    /deep/#mytitle>span{
+  /deep/#mytitle > span {
     font-weight: 800;
     font-weight: 800;
   }
   }
   display: flex;
   display: flex;
@@ -361,7 +431,7 @@ export default {
     width: 100%;
     width: 100%;
     display: flex;
     display: flex;
     flex-direction: column;
     flex-direction: column;
-   .top {
+    .top {
       padding-left: 18px;
       padding-left: 18px;
       display: flex;
       display: flex;
       align-items: center;
       align-items: center;
@@ -383,12 +453,12 @@ export default {
       display: flex;
       display: flex;
       justify-content: start;
       justify-content: start;
     }
     }
-    .info{
+    .info {
       max-height: 404px;
       max-height: 404px;
       width: 86%;
       width: 86%;
       border: 1px solid #ccc;
       border: 1px solid #ccc;
       margin-left: 70px;
       margin-left: 70px;
-      .title{
+      .title {
         color: black;
         color: black;
         display: flex;
         display: flex;
         justify-content: space-between;
         justify-content: space-between;
@@ -396,10 +466,10 @@ export default {
         align-items: center;
         align-items: center;
         padding: 0 30px;
         padding: 0 30px;
       }
       }
-      .table{
+      .table {
         overflow: auto;
         overflow: auto;
         max-height: 350px;
         max-height: 350px;
-        .smimg{
+        .smimg {
           // border: 3px solid #ccc;
           // border: 3px solid #ccc;
           height: 78px;
           height: 78px;
           img {
           img {
@@ -409,7 +479,7 @@ export default {
         }
         }
       }
       }
     }
     }
-    .bot_btn{
+    .bot_btn {
       display: flex;
       display: flex;
       justify-content: space-between;
       justify-content: space-between;
       position: absolute;
       position: absolute;

+ 3 - 3
src/views/holding/holding1_Dialog.vue

@@ -19,10 +19,10 @@
       style="width: 100%"
       style="width: 100%"
     >
     >
       <el-table-column type="selection" width="55" :resizable="false"> </el-table-column>
       <el-table-column type="selection" width="55" :resizable="false"> </el-table-column>
-      <el-table-column label="缩略图" width="140" :resizable="false">
+      <el-table-column label="缩略图1" width="140" :resizable="false">
         <template #default="{ row }">
         <template #default="{ row }">
           <div class="smimg">
           <div class="smimg">
-            <img :src="baseURL + row.thumb" alt="" :onerror='defaultImg'/>
+            <img v-lazy="baseURL + row.thumb" alt=""/>
           </div>
           </div>
         </template>
         </template>
       </el-table-column>
       </el-table-column>
@@ -54,7 +54,7 @@
 import axios from '@/utils/request'
 import axios from '@/utils/request'
 import { getListTow } from '@/apis/holding1'
 import { getListTow } from '@/apis/holding1'
 export default {
 export default {
-  name: 'Holding0_Dialog',
+  name: 'Holding1_Dialog',
   components: {},
   components: {},
   props: {
   props: {
     dialogFormVisible: {
     dialogFormVisible: {

+ 35 - 22
src/views/holding/holding1_add.vue

@@ -168,6 +168,12 @@ export default {
       this.tableData.forEach(v => {
       this.tableData.forEach(v => {
         v.integrity = this.spoil(v.integrity)
         v.integrity = this.spoil(v.integrity)
         v.goodsTypeId = this.category(v.goodsTypeId)
         v.goodsTypeId = this.category(v.goodsTypeId)
+
+        v.storageId = ''
+        v.storageId = v.storageLevel1 + ''
+        if (v.storageLevel2) v.storageId += ',' + v.storageLevel2
+        if (v.storageLevel3) v.storageId += ',' + v.storageLevel3
+
         if (v.storageId === '') v.location = ''
         if (v.storageId === '') v.location = ''
         else {
         else {
           this.location[v.id] = v.storageId
           this.location[v.id] = v.storageId
@@ -233,30 +239,37 @@ export default {
     },
     },
     // 点击返回
     // 点击返回
     goBack () {
     goBack () {
-      const obj = { description: this.fromData.textarea, goodsIds: this.goodsIds.join(','), id: this.mydata.id, status: null, location: this.location }
-      this.$confirm('您需要保存这条数据吗?', '提示', {
-        confirmButtonText: '保存',
-        cancelButtonText: '放弃',
-        type: 'warning'
-      }).then(async () => {
-        if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
-        if (this.tableData.some(v => v.location === '')) return this.$message.warning('藏品位置不能为空')
-        if (this.fromData.textarea.trim() === '') return this.$message.warning('入库说明不能为空')
-        if (this.fromData.textarea.length > 255) return this.$message.warning('入库说明不能超过255个字')
-        // 发请求
-        await holding1submit(obj)
-        this.$router.push('/layout/holding1')
-        this.$message({
-          type: 'success',
-          message: '保存成功!'
-        })
-      }).catch(() => {
+      if (
+        this.mydata.status === '馆长不通过' ||
+        this.mydata.status === '主任不通过'
+      ) {
         this.$router.push('/layout/holding1')
         this.$router.push('/layout/holding1')
-        this.$message({
-          type: 'info',
-          message: '放弃保存.'
+      } else {
+        const obj = { description: this.fromData.textarea, goodsIds: this.goodsIds.join(','), id: this.mydata.id, status: null, location: this.location }
+        this.$confirm('您需要保存这条数据吗?', '提示', {
+          confirmButtonText: '保存',
+          cancelButtonText: '放弃',
+          type: 'warning'
+        }).then(async () => {
+          if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
+          if (this.tableData.some(v => v.location === '')) return this.$message.warning('藏品位置不能为空')
+          if (this.fromData.textarea.trim() === '') return this.$message.warning('入库说明不能为空')
+          if (this.fromData.textarea.length > 255) return this.$message.warning('入库说明不能超过255个字')
+          // 发请求
+          await holding1submit(obj)
+          this.$router.push('/layout/holding1')
+          this.$message({
+            type: 'success',
+            message: '保存成功!'
+          })
+        }).catch(() => {
+          this.$router.push('/layout/holding1')
+          this.$message({
+            type: 'info',
+            message: '放弃保存.'
+          })
         })
         })
-      })
+      }
     },
     },
     // 点击提交
     // 点击提交
     submit () {
     submit () {

+ 1 - 1
src/views/holding/holding1_look.vue

@@ -185,7 +185,7 @@ export default {
       v.integrity = this.spoil(v.integrity)
       v.integrity = this.spoil(v.integrity)
       v.goodsTypeId = this.category(v.goodsTypeId)
       v.goodsTypeId = this.category(v.goodsTypeId)
       v.status = this.myStatus(v.status)
       v.status = this.myStatus(v.status)
-
+      if (this.myData.status === '主任不通过' || this.myData.status === '馆长不通过') v.status = '-'
       v.storageId = ''
       v.storageId = ''
       v.storageId = v.storageLevel1 + ''
       v.storageId = v.storageLevel1 + ''
       if (v.storageLevel2) v.storageId += ',' + v.storageLevel2
       if (v.storageLevel2) v.storageId += ',' + v.storageLevel2

+ 1 - 1
src/views/holding/holding2_Dialog.vue

@@ -22,7 +22,7 @@
       <el-table-column label="缩略图" width="140" :resizable="false">
       <el-table-column label="缩略图" width="140" :resizable="false">
         <template #default="{ row }">
         <template #default="{ row }">
           <div class="smimg">
           <div class="smimg">
-            <img :src="baseURL + row.thumb" alt="" :onerror='defaultImg'/>
+            <img v-lazy="baseURL + row.thumb" alt=""/>
           </div>
           </div>
         </template>
         </template>
       </el-table-column>
       </el-table-column>

+ 32 - 25
src/views/holding/holding2_add.vue

@@ -242,34 +242,41 @@ export default {
     },
     },
     // 点击返回
     // 点击返回
     goBack () {
     goBack () {
-      // 手动整理所有输入的出库位置信息
-      this.tableData.forEach((v, i) => {
-        this.locations[v.id] = this.tableData[i].outPath
-      })
-      const obj = { description: this.fromData.textarea, goodsIds: this.goodsIds.join(','), id: this.mydata.id, status: null, type: this.fromData.source, location: this.locations }
-      this.$confirm('您需要保存这条数据吗?', '提示', {
-        confirmButtonText: '保存',
-        cancelButtonText: '放弃',
-        type: 'warning'
-      }).then(async () => {
-        if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
-        // if (this.tableData.some(v => v.outPath === '')) return this.$message.warning('出库位置不能为空')
-        if (this.fromData.textarea.trim() === '') return this.$message.warning('出库说明不能为空')
-        if (this.fromData.textarea.length > 255) return this.$message.warning('出库说明不能超过255个字')
-        // 发请求
-        await holding1submit(obj)
+      if (
+        this.mydata.status === '馆长不通过' ||
+        this.mydata.status === '主任不通过'
+      ) {
         this.$router.push('/layout/holding2')
         this.$router.push('/layout/holding2')
-        this.$message({
-          type: 'success',
-          message: '保存成功!'
+      } else {
+        // 手动整理所有输入的出库位置信息
+        this.tableData.forEach((v, i) => {
+          this.locations[v.id] = this.tableData[i].outPath
         })
         })
-      }).catch(() => {
-        this.$router.push('/layout/holding2')
-        this.$message({
-          type: 'info',
-          message: '放弃保存.'
+        const obj = { description: this.fromData.textarea, goodsIds: this.goodsIds.join(','), id: this.mydata.id, status: null, type: this.fromData.source, location: this.locations }
+        this.$confirm('您需要保存这条数据吗?', '提示', {
+          confirmButtonText: '保存',
+          cancelButtonText: '放弃',
+          type: 'warning'
+        }).then(async () => {
+          if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
+          // if (this.tableData.some(v => v.outPath === '')) return this.$message.warning('出库位置不能为空')
+          if (this.fromData.textarea.trim() === '') return this.$message.warning('出库说明不能为空')
+          if (this.fromData.textarea.length > 255) return this.$message.warning('出库说明不能超过255个字')
+          // 发请求
+          await holding1submit(obj)
+          this.$router.push('/layout/holding2')
+          this.$message({
+            type: 'success',
+            message: '保存成功!'
+          })
+        }).catch(() => {
+          this.$router.push('/layout/holding2')
+          this.$message({
+            type: 'info',
+            message: '放弃保存.'
+          })
         })
         })
-      })
+      }
     },
     },
     // 点击提交
     // 点击提交
     submit () {
     submit () {

+ 1 - 0
src/views/holding/holding2_look.vue

@@ -364,6 +364,7 @@ export default {
         v.integrity = this.spoil(v.integrity)
         v.integrity = this.spoil(v.integrity)
         v.goodsTypeId = this.category(v.goodsTypeId)
         v.goodsTypeId = this.category(v.goodsTypeId)
         v.status = this.myStatus(v.status)
         v.status = this.myStatus(v.status)
+        if (this.myData.status === '主任不通过' || this.myData.status === '馆长不通过') v.status = '-'
       })
       })
     }
     }
   },
   },

+ 11 - 4
src/views/holding/holding3.vue

@@ -108,9 +108,8 @@
                 <template #default="{ row }">
                 <template #default="{ row }">
                   <div class="smimg">
                   <div class="smimg">
                     <img
                     <img
-                      :src="baseURL + row.thumb"
+                      v-lazy="baseURL + row.thumb"
                       alt=""
                       alt=""
-                      :onerror="defaultImg"
                     />
                     />
                   </div>
                   </div>
                 </template>
                 </template>
@@ -186,7 +185,7 @@
               :key="index"
               :key="index"
               @click="myLook(item)"
               @click="myLook(item)"
             >
             >
-              <img :src="baseURL + item.thumb" alt="" :onerror="defaultImg" />
+              <img v-lazy="baseURL + item.thumb" alt=""/>
               <span>{{ item.name }}</span>
               <span>{{ item.name }}</span>
             </div>
             </div>
           </div>
           </div>
@@ -296,10 +295,18 @@ export default {
   methods: {
   methods: {
     // 点击导出
     // 点击导出
     async derive () {
     async derive () {
+      let length
+      let temp
+      if (this.optionsArr.length > 0) {
+        length = this.optionsArr.length
+        temp = this.optionsArr[length - 1]
+      } else length = temp = null
       const res = await getHolding3List({
       const res = await getHolding3List({
         ...this.mydata,
         ...this.mydata,
         pageNum: 1,
         pageNum: 1,
-        pageSize: 99999
+        pageSize: 99999,
+        storageLevel: length,
+        storageId: temp
       })
       })
       this.json_data = res.data.list
       this.json_data = res.data.list
       this.json_data.forEach((v) => {
       this.json_data.forEach((v) => {

+ 28 - 21
src/views/holding/holding5_add.vue

@@ -229,29 +229,36 @@ export default {
     },
     },
     // 点击返回
     // 点击返回
     goBack () {
     goBack () {
-      const obj = { description: this.fromData.textarea, goodsIds: this.goodsIds.join(','), id: this.mydata.id, status: null }
-      this.$confirm('您需要保存这条数据吗?', '提示', {
-        confirmButtonText: '保存',
-        cancelButtonText: '放弃',
-        type: 'warning'
-      }).then(async () => {
-        if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
-        if (this.fromData.textarea.trim() === '') return this.$message.warning('注销说明不能为空')
-        if (this.fromData.textarea.length > 255) return this.$message.warning('注销说明不能超过255个字')
-        // 发请求
-        await holding1submit(obj)
-        this.$router.push('/layout/holding5')
-        this.$message({
-          type: 'success',
-          message: '保存成功!'
-        })
-      }).catch(() => {
+      if (
+        this.mydata.status === '馆长不通过' ||
+        this.mydata.status === '主任不通过'
+      ) {
         this.$router.push('/layout/holding5')
         this.$router.push('/layout/holding5')
-        this.$message({
-          type: 'info',
-          message: '放弃保存.'
+      } else {
+        const obj = { description: this.fromData.textarea, goodsIds: this.goodsIds.join(','), id: this.mydata.id, status: null }
+        this.$confirm('您需要保存这条数据吗?', '提示', {
+          confirmButtonText: '保存',
+          cancelButtonText: '放弃',
+          type: 'warning'
+        }).then(async () => {
+          if (this.tableData.length === 0) return this.$message.warning('至少添加一条藏品信息')
+          if (this.fromData.textarea.trim() === '') return this.$message.warning('注销说明不能为空')
+          if (this.fromData.textarea.length > 255) return this.$message.warning('注销说明不能超过255个字')
+          // 发请求
+          await holding1submit(obj)
+          this.$router.push('/layout/holding5')
+          this.$message({
+            type: 'success',
+            message: '保存成功!'
+          })
+        }).catch(() => {
+          this.$router.push('/layout/holding5')
+          this.$message({
+            type: 'info',
+            message: '放弃保存.'
+          })
         })
         })
-      })
+      }
     },
     },
     // 点击提交
     // 点击提交
     async submit () {
     async submit () {

+ 7 - 2
src/views/home/index.vue

@@ -291,12 +291,16 @@ export default {
         trigger: 'item'
         trigger: 'item'
       },
       },
       legend: {
       legend: {
+        type: 'scroll',
         orient: 'vertical',
         orient: 'vertical',
         right: 10,
         right: 10,
-        top: 90,
-        bottom: 20
+        top: 10,
+        bottom: 0
       },
       },
       series: [
       series: [
+        //         radius: ['0%', '40%'],
+        // center: ['24%', '50%'],
+
         {
         {
           type: 'pie',
           type: 'pie',
           radius: ['40%', '70%'],
           radius: ['40%', '70%'],
@@ -405,6 +409,7 @@ export default {
     }
     }
   }
   }
   .conten {
   .conten {
+    width: 1650px;
     .none {
     .none {
       position: absolute;
       position: absolute;
       left: 50%;
       left: 50%;

+ 16 - 16
src/views/layout/index.vue

@@ -51,7 +51,7 @@
         </ul>
         </ul>
       </div>
       </div>
     </div>
     </div>
-    <Router-view />
+    <Router-view style="min-height: 830px;"/>
 
 
         <!-- 点击修改密码出现弹窗 -->
         <!-- 点击修改密码出现弹窗 -->
     <el-dialog title="修改密码" :visible.sync="isShow"  @close="btnX()">
     <el-dialog title="修改密码" :visible.sync="isShow"  @close="btnX()">
@@ -259,21 +259,19 @@ export default {
     // 获取用户角色权限标识
     // 获取用户角色权限标识
     let temp = localStorage.getItem('daliCK')
     let temp = localStorage.getItem('daliCK')
     temp = JSON.parse(temp)
     temp = JSON.parse(temp)
-    if (temp) {
-      const temp2 = temp.role[0]
-      if (temp2 === 'sys_admin' || temp2 === 'sys_user') {
-        this.tabList.push(
-          {
-            name: '系统管理',
-            push: '/layout/system',
-            son: [
-              { name: '用户管理', id: 2 },
-              { name: '角色管理', id: 3 },
-              { name: '系统日志', id: 1 }
-            ]
-          }
-        )
-      } // 不是超级管理员和系统管理员
+    if (temp && temp.user.isAdmin === 1) {
+      this.tabList.push(
+        {
+          name: '系统管理',
+          push: '/layout/system',
+          son: [
+            { name: '用户管理', id: 2 },
+            // { name: '角色管理', id: 3 },
+            { name: '系统日志', id: 1 }
+          ]
+        }
+      )
+      // 不是超级管理员和系统管理员
     }
     }
     // 获取用户权限数据
     // 获取用户权限数据
     let temp3 = localStorage.getItem('daliCK_limits')
     let temp3 = localStorage.getItem('daliCK_limits')
@@ -305,6 +303,7 @@ export default {
 </script>
 </script>
 <style lang='less' scoped>
 <style lang='less' scoped>
 .layout {
 .layout {
+  min-width: 1900px;
   .top {
   .top {
     min-width: 1142px;
     min-width: 1142px;
     display: flex;
     display: flex;
@@ -418,6 +417,7 @@ export default {
       bottom: -74px;
       bottom: -74px;
       right: 0px;
       right: 0px;
       li {
       li {
+        min-width: 104px;
         padding:10px 20px;
         padding:10px 20px;
         height: 40px;
         height: 40px;
         color: #3E5EB3;
         color: #3E5EB3;

+ 3 - 4
src/views/statistics/statistics1.vue

@@ -247,10 +247,7 @@ export default {
 <style lang='less' scoped>
 <style lang='less' scoped>
 //@import url(); 引入公共css类
 //@import url(); 引入公共css类
 .statistics1 {
 .statistics1 {
-  /deep/.el-table__body-wrapper {
-    max-height: 242px;
-    overflow-y: auto;
-  }
+
   /deep/#mytitle > span {
   /deep/#mytitle > span {
     font-weight: 800;
     font-weight: 800;
   }
   }
@@ -268,6 +265,8 @@ export default {
     }
     }
   }
   }
   .conten {
   .conten {
+    max-height: 789px;
+    overflow-y: auto;
     flex: 1;
     flex: 1;
     // background-color: #fff;
     // background-color: #fff;
     margin: 0 20px 40px;
     margin: 0 20px 40px;

+ 28 - 15
src/views/system/system2.vue

@@ -23,7 +23,7 @@
               style="width: 217px"
               style="width: 217px"
             ></el-input>
             ></el-input>
 
 
-            <span>账号角色:</span>
+            <!-- <span>账号角色:</span>
             <el-select v-model="myData.roleId" placeholder="请选择">
             <el-select v-model="myData.roleId" placeholder="请选择">
               <el-option
               <el-option
                 v-for="item in source"
                 v-for="item in source"
@@ -32,7 +32,7 @@
                 :value="item.id"
                 :value="item.id"
               >
               >
               </el-option>
               </el-option>
-            </el-select>
+            </el-select> -->
 
 
             <el-button style="margin-left: 20px" @click="find">查询</el-button>
             <el-button style="margin-left: 20px" @click="find">查询</el-button>
             <el-button type="primary" @click="dialogFormVisible = true"
             <el-button type="primary" @click="dialogFormVisible = true"
@@ -56,17 +56,18 @@
               </el-table-column>
               </el-table-column>
               <el-table-column prop="realName" label="姓名" width="180" :resizable="false">
               <el-table-column prop="realName" label="姓名" width="180" :resizable="false">
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="roleName" label="角色" width="200" :resizable="false">
-              </el-table-column>
+              <!-- <el-table-column prop="roleName" label="角色" width="200" :resizable="false">
+              </el-table-column> -->
               <el-table-column prop="phone" label="手机号" :resizable="false"> </el-table-column>
               <el-table-column prop="phone" label="手机号" :resizable="false"> </el-table-column>
               <el-table-column prop="isEnabled" label="状态" width="100" :resizable="false">
               <el-table-column prop="isEnabled" label="状态" width="100" :resizable="false">
               </el-table-column>
               </el-table-column>
-              <el-table-column label="操作" width="220" :resizable="false">
+              <el-table-column label="操作" width="280" :resizable="false">
                 <template #default='{row}'>
                 <template #default='{row}'>
                   <el-button type="text" @click="editUser(row.id)">修改</el-button>
                   <el-button type="text" @click="editUser(row.id)">修改</el-button>
                   <!-- <el-button type="text" v-if="row.isEnabled==='启用'">停用</el-button>
                   <!-- <el-button type="text" v-if="row.isEnabled==='启用'">停用</el-button>
                   <el-button type="text" v-else>启用</el-button> -->
                   <el-button type="text" v-else>启用</el-button> -->
-                  <el-button type="text" @click="cancel(row.id)">注销</el-button>
+                  <el-button type="text" @click="cancel(row.id)" :disabled='row.isAdmin===1'>注销</el-button>
+                  <el-button type="text" @click="editJS(row.id)" :disabled='row.isAdmin===1'>授权</el-button>
                   <el-button type="text" @click="reset(row.id)">重置密码</el-button>
                   <el-button type="text" @click="reset(row.id)">重置密码</el-button>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
@@ -88,18 +89,22 @@
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
+    <!-- 点击编辑出现弹窗 -->
+    <System3Edit :isShow.sync="isShowEdit" ref="myEdit"/>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import { getUserList, userRemov, resetPass, getRole } from '@/apis/system2'
+import System3Edit from './system3_Edit.vue'
+// import { getUserList, userRemov, resetPass, getRole } from '@/apis/system2'
+import { getUserList, userRemov, resetPass } from '@/apis/system2'
 import System2Add from './system2_add.vue'
 import System2Add from './system2_add.vue'
 import System2Edit from './system2_Edit.vue'
 import System2Edit from './system2_Edit.vue'
 import TabList from '@/components/tabLeft4.vue'
 import TabList from '@/components/tabLeft4.vue'
 export default {
 export default {
   name: 'system2',
   name: 'system2',
   // import引入的组件需要注入到对象中才能使用
   // import引入的组件需要注入到对象中才能使用
-  components: { TabList, System2Add, System2Edit },
+  components: { TabList, System2Add, System2Edit, System3Edit },
   data () {
   data () {
     // 这里存放数据
     // 这里存放数据
     return {
     return {
@@ -110,14 +115,17 @@ export default {
         pageNum: 1,
         pageNum: 1,
         pageSize: 10,
         pageSize: 10,
         searchKey: '',
         searchKey: '',
-        startTime: '',
-        roleId: null
+        startTime: ''
+        // roleId: null
       },
       },
       dialogFormVisible: false,
       dialogFormVisible: false,
       // 多选数据
       // 多选数据
-      source: [],
+      // source: [],
       // 表格数据
       // 表格数据
-      tableData: []
+      tableData: [],
+      // 最后加的权限弹窗
+      isShowEdit: false
+
     }
     }
   },
   },
   // 监听属性 类似于data概念
   // 监听属性 类似于data概念
@@ -126,6 +134,11 @@ export default {
   watch: {},
   watch: {},
   // 方法集合
   // 方法集合
   methods: {
   methods: {
+    // 点击权限
+    editJS (id) {
+      this.$refs.myEdit.getIimits(id)
+      this.isShowEdit = true
+    },
     // 分页器
     // 分页器
     currentChange (val) {
     currentChange (val) {
       this.myData.pageNum = val
       this.myData.pageNum = val
@@ -197,9 +210,9 @@ export default {
   // 生命周期 - 创建完成(可以访问当前this实例)
   // 生命周期 - 创建完成(可以访问当前this实例)
   async created () {
   async created () {
     // 获取角色
     // 获取角色
-    const res = await getRole()
-    this.source = res.data
-    this.source.unshift({ id: '', roleName: '全部' })
+    // const res = await getRole()
+    // this.source = res.data
+    // this.source.unshift({ id: '', roleName: '全部' })
   },
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {
   mounted () {

+ 9 - 8
src/views/system/system2_Edit.vue

@@ -14,7 +14,7 @@
         <el-form-item label="确定密码:" prop="checkPass">
         <el-form-item label="确定密码:" prop="checkPass">
           <el-input v-model="form.checkPass" placeholder="请输入" style="width:300px" show-password></el-input>
           <el-input v-model="form.checkPass" placeholder="请输入" style="width:300px" show-password></el-input>
         </el-form-item> -->
         </el-form-item> -->
-        <el-form-item label="角色:" prop="roleId" v-if="form.roleId!==1" v-show="form.roleId!==6">
+        <!-- <el-form-item label="角色:" prop="roleId" v-if="form.roleId!==1" v-show="form.roleId!==6">
           <el-select v-model="form.roleId" placeholder="请选择" style="width:300px" >
           <el-select v-model="form.roleId" placeholder="请选择" style="width:300px" >
             <el-option
             <el-option
               v-for="item in source"
               v-for="item in source"
@@ -23,13 +23,13 @@
               :value="item.id"
               :value="item.id"
             ></el-option>
             ></el-option>
           </el-select>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="手机号码:" prop="phone">
         <el-form-item label="手机号码:" prop="phone">
           <el-input v-model="form.phone" placeholder="请输入" style="width:300px"></el-input>
           <el-input v-model="form.phone" placeholder="请输入" style="width:300px"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="是否启用:">
         <el-form-item label="是否启用:">
             <el-radio v-model="form.isEnabled" :label="1">是</el-radio>
             <el-radio v-model="form.isEnabled" :label="1">是</el-radio>
-            <el-radio v-model="form.isEnabled" :label="0">否</el-radio>
+            <el-radio v-model="form.isEnabled" :label="0" :disabled="form.isAdmin===1">否</el-radio>
         </el-form-item>
         </el-form-item>
         <div class="hint">* 默认密码:123456</div>
         <div class="hint">* 默认密码:123456</div>
       </el-form>
       </el-form>
@@ -42,7 +42,8 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { userSave, getDetailById, getRole } from '@/apis/system2'
+// import { userSave, getDetailById, getRole } from '@/apis/system2'
+import { userSave, getDetailById } from '@/apis/system2'
 export default {
 export default {
   name: 'system2_Edit',
   name: 'system2_Edit',
   props: {
   props: {
@@ -67,12 +68,12 @@ export default {
         userName: '',
         userName: '',
         // passWord: '',
         // passWord: '',
         // checkPass: '',
         // checkPass: '',
-        roleId: 2,
+        // roleId: 2,
         phone: '',
         phone: '',
         isEnabled: 1
         isEnabled: 1
       },
       },
       // 多选数据
       // 多选数据
-      source: [],
+      // source: [],
       rules: {
       rules: {
         realName: [
         realName: [
           { required: true, message: '不能为空', trigger: 'blur' }
           { required: true, message: '不能为空', trigger: 'blur' }
@@ -124,8 +125,8 @@ export default {
   // 生命周期 - 创建完成(可以访问当前this实例)
   // 生命周期 - 创建完成(可以访问当前this实例)
   async created () {
   async created () {
     // 获取角色
     // 获取角色
-    const res = await getRole()
-    this.source = res.data
+    // const res = await getRole()
+    // this.source = res.data
   },
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   // 生命周期 - 挂载完成(可以访问DOM元素)
   mounted () {},
   mounted () {},

+ 10 - 9
src/views/system/system2_add.vue

@@ -14,7 +14,7 @@
         <el-form-item label="确定密码:" prop="checkPass">
         <el-form-item label="确定密码:" prop="checkPass">
           <el-input v-model="form.checkPass" placeholder="请输入" style="width:300px" show-password></el-input>
           <el-input v-model="form.checkPass" placeholder="请输入" style="width:300px" show-password></el-input>
         </el-form-item> -->
         </el-form-item> -->
-        <el-form-item label="角色:" prop="roleId">
+        <!-- <el-form-item label="角色:" prop="roleId">
           <el-select v-model="form.roleId" placeholder="请选择" style="width:300px">
           <el-select v-model="form.roleId" placeholder="请选择" style="width:300px">
             <el-option
             <el-option
               v-for="item in source"
               v-for="item in source"
@@ -23,8 +23,8 @@
               :value="item.id"
               :value="item.id"
             ></el-option>
             ></el-option>
           </el-select>
           </el-select>
-        </el-form-item>
-        <el-form-item label="手机号码:" prop="phone">
+        </el-form-item> -->
+        <el-form-item label="号码:" prop="phone">
           <el-input v-model="form.phone" placeholder="请输入" style="width:300px"></el-input>
           <el-input v-model="form.phone" placeholder="请输入" style="width:300px"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="是否启用:">
         <el-form-item label="是否启用:">
@@ -42,7 +42,8 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { userSave, getRole } from '@/apis/system2'
+// import { userSave, getRole } from '@/apis/system2'
+import { userSave } from '@/apis/system2'
 export default {
 export default {
   name: 'system2_add',
   name: 'system2_add',
   props: {
   props: {
@@ -67,12 +68,12 @@ export default {
         userName: '',
         userName: '',
         // passWord: '',
         // passWord: '',
         // checkPass: '',
         // checkPass: '',
-        roleId: 2,
+        // roleId: 2,
         phone: '',
         phone: '',
         isEnabled: 1
         isEnabled: 1
       },
       },
       // 多选数据
       // 多选数据
-      source: [],
+      // source: [],
       rules: {
       rules: {
         realName: [
         realName: [
           { required: true, message: '不能为空', trigger: 'blur' }
           { required: true, message: '不能为空', trigger: 'blur' }
@@ -113,7 +114,7 @@ export default {
             userName: '',
             userName: '',
             // passWord: '',
             // passWord: '',
             // checkPass: '',
             // checkPass: '',
-            roleId: 1,
+            // roleId: 1,
             phone: '',
             phone: '',
             isEnabled: 1
             isEnabled: 1
           }
           }
@@ -131,8 +132,8 @@ export default {
   // 生命周期 - 创建完成(可以访问当前this实例)
   // 生命周期 - 创建完成(可以访问当前this实例)
   async created () {
   async created () {
     // 获取角色
     // 获取角色
-    const res = await getRole()
-    this.source = res.data
+    // const res = await getRole()
+    // this.source = res.data
     // console.log(999, res)
     // console.log(999, res)
   },
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
   // 生命周期 - 挂载完成(可以访问DOM元素)

+ 39 - 46
src/views/system/system3_Edit.vue

@@ -1,7 +1,7 @@
 <!--  -->
 <!--  -->
 <template>
 <template>
-  <el-dialog title="编辑角色" :visible="isShow" @close="btnCancel()">
-    <el-form
+  <el-dialog title="权限设置" :visible="isShow" @close="btnCancel()">
+    <!-- <el-form
       :model="ruleForm"
       :model="ruleForm"
       :rules="rules"
       :rules="rules"
       ref="ruleForm"
       ref="ruleForm"
@@ -19,9 +19,9 @@
           placeholder="请输入"
           placeholder="请输入"
         ></el-input>
         ></el-input>
       </el-form-item>
       </el-form-item>
-    </el-form>
+    </el-form> -->
     <div class="rowTow">
     <div class="rowTow">
-      <span>权限设置:</span>
+      <!-- <span>权限设置:</span> -->
       <ul class="conten">
       <ul class="conten">
         <li v-for="(item,index) in checkedList" :key="index">
         <li v-for="(item,index) in checkedList" :key="index">
           <span>{{item.name}}</span>
           <span>{{item.name}}</span>
@@ -38,7 +38,8 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { addrole, getLimitsById } from '@/apis/system1'
+// import { addrole } from '@/apis/system1'
+import { resourceTreeApi, resourceTreeOk } from '@/apis/system2'
 // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 // 例如:import 《组件名称》 from '《组件路径》';
 // 例如:import 《组件名称》 from '《组件路径》';
 
 
@@ -55,19 +56,17 @@ export default {
   data () {
   data () {
     // 这里存放数据
     // 这里存放数据
     return {
     return {
-      checked: false,
+      // checked: false,
       checkedList: [],
       checkedList: [],
-      value: false,
-      // 滑块
-      myid: null,
-      ruleForm: {
-        roleName: '',
-        roleDesc: ''
-      },
-      rules: {
-        roleName: [{ required: true, message: '不能为空', trigger: 'blur' }],
-        roleDesc: [{ required: true, message: '不能为空', trigger: 'blur' }]
-      }
+      myid: null
+      // ruleForm: {
+      //   roleName: '',
+      //   roleDesc: ''
+      // },
+      // rules: {
+      //   roleName: [{ required: true, message: '不能为空', trigger: 'blur' }],
+      //   roleDesc: [{ required: true, message: '不能为空', trigger: 'blur' }]
+      // }
     }
     }
   },
   },
   // 监听属性 类似于data概念
   // 监听属性 类似于data概念
@@ -78,12 +77,12 @@ export default {
   // 方法集合
   // 方法集合
   methods: {
   methods: {
     // 获取权限树-让父组件调用
     // 获取权限树-让父组件调用
-    async getLimitsById (id) {
-      const res = await getLimitsById(id)
-      this.ruleForm.roleName = res.data.role.roleName
-      this.ruleForm.roleDesc = res.data.role.roleDesc
-      this.checkedList = res.data.permission
-      this.myid = res.data.role.id
+    async getIimits  (id) {
+      const res = await resourceTreeApi(id)
+      // this.ruleForm.roleName = res.data.role.roleName
+      // this.ruleForm.roleDesc = res.data.role.roleDesc
+      this.checkedList = res.data
+      this.myid = id
       // console.log(999, res)
       // console.log(999, res)
     },
     },
     mychange (val, id) {
     mychange (val, id) {
@@ -104,27 +103,23 @@ export default {
     },
     },
     // 点击确定
     // 点击确定
     async btnOk () {
     async btnOk () {
-      try {
-        await this.$refs.ruleForm.validate()
-        const temp = []
-        this.checkedList.forEach(v => {
-          if (v.authority) {
-            temp.push(v.id)
-            v.children.forEach(i => {
-              if (i.authority) temp.push(i.id)
-            })
-          }
-        })
-        const res = await addrole({ id: this.myid, resources: temp, roleDesc: this.ruleForm.roleDesc, roleName: this.ruleForm.roleName })
-        // console.log(999, res)
-        if (res.code === 0) {
-          this.$message.success('修改成功!')
-          this.$emit('refresh')
-          this.$emit('update:isShow', false)
+      const temp = []
+      this.checkedList.forEach(v => {
+        if (v.authority) {
+          temp.push(v.id)
+          v.children.forEach(i => {
+            if (i.authority) temp.push(i.id)
+          })
         }
         }
-      } catch (error) {
-        console.log(error)
-      }
+      })
+      // const res = await addrole({ id: this.myid, resources: temp, roleDesc: this.ruleForm.roleDesc, roleName: this.ruleForm.roleName })
+      const res = await resourceTreeOk({ userId: this.myid, resources: temp })
+      // console.log(999, res)
+      if (res.code === 0) {
+        this.$message.success('修改成功!')
+        // this.$emit('refresh')
+        this.$emit('update:isShow', false)
+      } else this.$message.warning(res.msg)
     }
     }
   },
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
   // 生命周期 - 创建完成(可以访问当前this实例)
@@ -150,14 +145,12 @@ export default {
   margin-left: 20px;
   margin-left: 20px;
 }
 }
 .rowTow {
 .rowTow {
-  display: flex;
-  margin-top: 20px;
-  margin-left: 20px;
   ul {
   ul {
     width: 80%;
     width: 80%;
     border: 1px solid #ccc;
     border: 1px solid #ccc;
     border-radius: 10px;
     border-radius: 10px;
     padding: 0 20px;
     padding: 0 20px;
+    margin: 0 auto;
     li {
     li {
       height: 45px;
       height: 45px;
       line-height: 45px;
       line-height: 45px;