Parcourir la source

Merge remote-tracking branch 'origin/master'

qymljy il y a 2 ans
Parent
commit
4472ebbacd

+ 1 - 1
dist/assets/Htabs-1c5d72b0.js → dist/assets/Htabs-37e3d464.js

@@ -1 +1 @@
-import{e as i,r}from"./index-d6ef7f53.js";const u=i("routeTabs",{state:()=>({historyRoutes:[],activeKey:0}),persist:{enabled:!0,strategies:[{storage:localStorage,paths:["historyRoutes","activeKey"]}]},getters:{},actions:{saveRoute(e){if(!this.historyRoutes.some(o=>o.name==e.name))return this.historyRoutes.push(e)},delRoute(e,s){if(r.options.routes[1].children.forEach(t=>{t.name==e&&(t.keepAlive=!1)}),this.historyRoutes=this.historyRoutes.filter(t=>{if(t.name!==e)return t}),e==s&&this.historyRoutes.length>0)return r.replace({name:this.historyRoutes[0].meta.name})}}});export{u};
+import{e as i,r}from"./index-834d7c1d.js";const u=i("routeTabs",{state:()=>({historyRoutes:[],activeKey:0}),persist:{enabled:!0,strategies:[{storage:localStorage,paths:["historyRoutes","activeKey"]}]},getters:{},actions:{saveRoute(e){if(!this.historyRoutes.some(o=>o.name==e.name))return this.historyRoutes.push(e)},delRoute(e,s){if(r.options.routes[1].children.forEach(t=>{t.name==e&&(t.keepAlive=!1)}),this.historyRoutes=this.historyRoutes.filter(t=>{if(t.name!==e)return t}),e==s&&this.historyRoutes.length>0)return r.replace({name:this.historyRoutes[0].meta.name})}}});export{u};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/base-e16bd87d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-0087226b.js


+ 1 - 1
dist/assets/index-98ef7eb2.js → dist/assets/index-017a6300.js

@@ -1 +1 @@
-import{l as n}from"./index-898e2a98.js";import{a as e,o as s,V as p,W as i,j as c,X as l,u as a}from"./vue-36a7978c.js";import"./vue-router-a0884db1.js";import"./index-d6ef7f53.js";import"./base-fb87c855.js";import"./_plugin-vue_export-helper-c27b6911.js";const g={__name:"index",setup(m){const t=e();let r=e([{label:"范围",key:"isnext",type:"select",dataSource:[{remarks:"今年",value:"0"},{remarks:"明年",value:"1"}]},{label:"时间范围",key:"dateRange",type:"datepickerRange",objKeys:["begindate","enddate"]}]),o=e({content:{pageNumber:1,pageSize:20,where:{condition:""}},id:20221215165504});return s(()=>{}),(u,d)=>(p(),i("div",null,[c(n,{ref_key:"list",ref:t,keyRouteName:"accountno",param:a(o),tableName:"vacationTable",searchType:a(r)},{operation:l(()=>[]),_:1},8,["param","searchType"])]))}};export{g as default};
+import{l as n}from"./index-6c9eb1d6.js";import{a as e,o as s,V as p,W as i,j as c,X as l,u as a}from"./vue-36a7978c.js";import"./vue-router-a0884db1.js";import"./index-834d7c1d.js";import"./base-e16bd87d.js";import"./_plugin-vue_export-helper-c27b6911.js";const g={__name:"index",setup(m){const t=e();let r=e([{label:"范围",key:"isnext",type:"select",dataSource:[{remarks:"今年",value:"0"},{remarks:"明年",value:"1"}]},{label:"时间范围",key:"dateRange",type:"datepickerRange",objKeys:["begindate","enddate"]}]),o=e({content:{pageNumber:1,pageSize:20,where:{condition:""}},id:20221215165504});return s(()=>{}),(u,d)=>(p(),i("div",null,[c(n,{ref_key:"list",ref:t,keyRouteName:"accountno",param:a(o),tableName:"vacationTable",searchType:a(r)},{operation:l(()=>[]),_:1},8,["param","searchType"])]))}};export{g as default};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-0af836c0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-0df4f660.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-1831a8f9.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-1ec8b8aa.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-1f43110a.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-25a63342.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-339c7f9e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-37f9534b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-4c41daa2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-58161985.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-5ef0660a.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-605c2b7e.js


+ 1 - 1
dist/assets/index-5525f014.js → dist/assets/index-655fcde2.js

@@ -1 +1 @@
-import{n as k}from"./index-0bcaacd4.js";import{m as v}from"./index-d6ef7f53.js";import{a as r,U as D,V as m,W as c,j as d,X as u,ab as R,R as f,F as p,G as _,a2 as x,u as l,H as y}from"./vue-36a7978c.js";const B={__name:"index",props:{title:String,wdith:String},emits:["selectRowData","close"],setup(o,{expose:b,emit:n}){let s=r(),e=r(!1),g=()=>{if(!s.value.tableRecord.length)return v.warning("请选择数据");e.value=!1,n("selectRowData",s.value.tableRecord)},w=()=>{n("close")};return b({modeVisible:e}),(a,i)=>{const h=D("a-modal");return m(),c(p,null,[d(h,{visible:l(e),"onUpdate:visible":i[0]||(i[0]=t=>y(e)?e.value=t:e=t),class:"custom-class",title:o.title||"标题",placement:"right",width:o.wdith||"1000px",closable:!1,onClose:l(w),onOk:l(g)},{default:u(()=>[d(k,R(a.$attrs,{ref_key:"list",ref:s,size:"small",onListData:a.listData}),{tb_cell:u(({data:t})=>[t.column.dataIndex==="operation"?f(a.$slots,"handleBtn",{key:0}):(m(),c(p,{key:1},[_(x(t.record[t.column.dataIndex]),1)],64))]),_:3},16,["onListData"])]),_:3},8,["visible","title","width","onClose","onOk"]),f(a.$slots,"slot1")],64)}}};export{B as _};
+import{n as k}from"./index-0af836c0.js";import{m as v}from"./index-834d7c1d.js";import{a as r,U as D,V as m,W as c,j as d,X as u,ab as R,R as f,F as p,G as _,a2 as x,u as l,H as y}from"./vue-36a7978c.js";const B={__name:"index",props:{title:String,wdith:String},emits:["selectRowData","close"],setup(o,{expose:b,emit:n}){let s=r(),e=r(!1),g=()=>{if(!s.value.tableRecord.length)return v.warning("请选择数据");e.value=!1,n("selectRowData",s.value.tableRecord)},w=()=>{n("close")};return b({modeVisible:e}),(a,i)=>{const h=D("a-modal");return m(),c(p,null,[d(h,{visible:l(e),"onUpdate:visible":i[0]||(i[0]=t=>y(e)?e.value=t:e=t),class:"custom-class",title:o.title||"标题",placement:"right",width:o.wdith||"1000px",closable:!1,onClose:l(w),onOk:l(g)},{default:u(()=>[d(k,R(a.$attrs,{ref_key:"list",ref:s,size:"small",onListData:a.listData}),{tb_cell:u(({data:t})=>[t.column.dataIndex==="operation"?f(a.$slots,"handleBtn",{key:0}):(m(),c(p,{key:1},[_(x(t.record[t.column.dataIndex]),1)],64))]),_:3},16,["onListData"])]),_:3},8,["visible","title","width","onClose","onOk"]),f(a.$slots,"slot1")],64)}}};export{B as _};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-6c9eb1d6.js


+ 1 - 1
dist/assets/index-c6c1ad5a.js → dist/assets/index-75bb5258.js

@@ -1 +1 @@
-import{l as d}from"./index-898e2a98.js";import{A as m}from"./index-d6ef7f53.js";import{u}from"./vue-router-a0884db1.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";import{a as s,U as x,V as r,W as y,j as g,X as n,u as c,G as h,a5 as k,$ as b,a2 as w,a3 as B}from"./vue-36a7978c.js";import"./base-fb87c855.js";const N={class:"y-container"},v=["onClick"],A={__name:"index",setup(S){u();let i=s([]);s([]);let p=s({content:{pageNumber:1,pageSize:20,systemappid:JSON.parse(sessionStorage.getItem("app")).systemappid},id:20221213094401});const l=()=>{let t=window.location.href,e=t.indexOf("/"),a=0;for(;e!=-1;)if(a++,e=t.indexOf("/",e+1),a++==3)return t.slice(0,e)},_=async t=>{console.log("http://60.204.153.188/");let e=await m.requested({id:20221213094501,content:{sys_reportid:t.sys_reportid,dataid:0}});window.open(l()+e.data)};return(t,e)=>{const a=x("a-button");return r(),y("div",N,[g(d,{columns:c(i),param:c(p),tableName:"reportcenterTable"},{operation:n(()=>[h(" 报表中心 ")]),tb_cell:n(({data:o})=>[o.column.dataIndex=="name"?(r(),k(a,{key:0,type:"link"},{default:n(()=>[b("span",{class:"btn-link",onClick:C=>_(o.record)},w(o.record.name),9,v)]),_:2},1024)):B("",!0)]),_:1},8,["columns","param"])])}}},P=f(A,[["__scopeId","data-v-caca61d5"]]);export{P as default};
+import{l as d}from"./index-6c9eb1d6.js";import{A as m}from"./index-834d7c1d.js";import{u}from"./vue-router-a0884db1.js";import{_ as f}from"./_plugin-vue_export-helper-c27b6911.js";import{a as s,U as x,V as r,W as y,j as g,X as n,u as c,G as h,a5 as k,$ as b,a2 as w,a3 as B}from"./vue-36a7978c.js";import"./base-e16bd87d.js";const N={class:"y-container"},v=["onClick"],A={__name:"index",setup(S){u();let i=s([]);s([]);let p=s({content:{pageNumber:1,pageSize:20,systemappid:JSON.parse(sessionStorage.getItem("app")).systemappid},id:20221213094401});const l=()=>{let t=window.location.href,e=t.indexOf("/"),a=0;for(;e!=-1;)if(a++,e=t.indexOf("/",e+1),a++==3)return t.slice(0,e)},_=async t=>{console.log("http://60.204.153.188/");let e=await m.requested({id:20221213094501,content:{sys_reportid:t.sys_reportid,dataid:0}});window.open(l()+e.data)};return(t,e)=>{const a=x("a-button");return r(),y("div",N,[g(d,{columns:c(i),param:c(p),tableName:"reportcenterTable"},{operation:n(()=>[h(" 报表中心 ")]),tb_cell:n(({data:o})=>[o.column.dataIndex=="name"?(r(),k(a,{key:0,type:"link"},{default:n(()=>[b("span",{class:"btn-link",onClick:C=>_(o.record)},w(o.record.name),9,v)]),_:2},1024)):B("",!0)]),_:1},8,["columns","param"])])}}},P=f(A,[["__scopeId","data-v-caca61d5"]]);export{P as default};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-77a5d1e0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-7c227249.js


+ 1 - 1
dist/assets/index-516dca60.js → dist/assets/index-7c26f696.js

@@ -1 +1 @@
-import{M as o,A as c,f as m}from"./index-d6ef7f53.js";import{U as l,V as u,a5 as p,X as y,G as d,a2 as g,u as S}from"./vue-36a7978c.js";const N={__name:"index",props:{type:String,btnName:String,message:String,idName:String,keyName:String,id:[String,Number],paramData:{type:Array,default(){return[]}},size:String},emits:["onSuccess"],setup(e,{emit:r}){const t=e;let i=()=>{o.confirm({title:t.message||"确定操作当前数据吗?",async onOk(){let a={content:{}};a.id=t.idName,a.content[t.keyName]=t.id,t.paramData.forEach(n=>{a.content[n.key]=n.value});let s=await c.requested(a);m.message(s,"操作成功",()=>{r("onSuccess")})},onCancel(){}})};return(a,s)=>{const n=l("a-button");return u(),p(n,{type:e.type?e.type:"primary",onClick:S(i),size:e.size||"small"},{default:y(()=>[d(g(e.btnName),1)]),_:1},8,["type","onClick","size"])}}};export{N as _};
+import{M as o,A as c,f as m}from"./index-834d7c1d.js";import{U as l,V as u,a5 as p,X as y,G as d,a2 as g,u as S}from"./vue-36a7978c.js";const N={__name:"index",props:{type:String,btnName:String,message:String,idName:String,keyName:String,id:[String,Number],paramData:{type:Array,default(){return[]}},size:String},emits:["onSuccess"],setup(e,{emit:r}){const t=e;let i=()=>{o.confirm({title:t.message||"确定操作当前数据吗?",async onOk(){let a={content:{}};a.id=t.idName,a.content[t.keyName]=t.id,t.paramData.forEach(n=>{a.content[n.key]=n.value});let s=await c.requested(a);m.message(s,"操作成功",()=>{r("onSuccess")})},onCancel(){}})};return(a,s)=>{const n=l("a-button");return u(),p(n,{type:e.type?e.type:"primary",onClick:S(i),size:e.size||"small"},{default:y(()=>[d(g(e.btnName),1)]),_:1},8,["type","onClick","size"])}}};export{N as _};

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-834d7c1d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-8814fa85.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-8df0f52a.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-9170b7e3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-9cbd6caa.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-d0611839.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-dd6f1094.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/assets/index-f5591d47.js


+ 1 - 1
dist/assets/login-43a7b92a.js → dist/assets/login-e98096e4.js

@@ -1,4 +1,4 @@
-import{u as useRouter}from"./vue-router-a0884db1.js";import{c as commonjsGlobal,u as useAuthStore,s as storeToRefs,A as Api,m as message}from"./index-d6ef7f53.js";import{u as useRouteTabsStore}from"./Htabs-1c5d72b0.js";import{_ as _export_sfc}from"./_plugin-vue_export-helper-c27b6911.js";import{d as defineComponent,U as resolveComponent,V as openBlock,W as createElementBlock,$ as createBaseVNode,j as createVNode,X as withCtx,r as reactive,a as ref,G as createTextVNode,a0 as pushScopeId,a1 as popScopeId}from"./vue-36a7978c.js";var md5Exports={},md5$1={get exports(){return md5Exports},set exports(e){md5Exports=e}};/**
+import{u as useRouter}from"./vue-router-a0884db1.js";import{c as commonjsGlobal,u as useAuthStore,s as storeToRefs,A as Api,m as message}from"./index-834d7c1d.js";import{u as useRouteTabsStore}from"./Htabs-37e3d464.js";import{_ as _export_sfc}from"./_plugin-vue_export-helper-c27b6911.js";import{d as defineComponent,U as resolveComponent,V as openBlock,W as createElementBlock,$ as createBaseVNode,j as createVNode,X as withCtx,r as reactive,a as ref,G as createTextVNode,a0 as pushScopeId,a1 as popScopeId}from"./vue-36a7978c.js";var md5Exports={},md5$1={get exports(){return md5Exports},set exports(e){md5Exports=e}};/**
  * [js-md5]{@link https://github.com/emn178/js-md5}
  *
  * @namespace md5

+ 1 - 1
dist/index.html

@@ -5,7 +5,7 @@
     <link rel="icon" type="image/svg+xml" href="./vite.svg" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>班尼戈水务管理</title>
-    <script type="module" crossorigin src="./assets/index-d6ef7f53.js"></script>
+    <script type="module" crossorigin src="./assets/index-834d7c1d.js"></script>
     <link rel="modulepreload" crossorigin href="./assets/vue-36a7978c.js">
     <link rel="modulepreload" crossorigin href="./assets/vue-router-a0884db1.js">
     <link rel="stylesheet" href="./assets/index-83d7b18d.css">

+ 26 - 3
src/components/layout/modules/menu.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="sw-menu">
-    <a-menu style="flex:1" v-model:selectedKeys="current" mode="inline" active-text-color="#000" @click="itemClick">
+    <a-menu style="flex:1" v-model:selectedKeys="current" mode="inline" :open-keys="openKeys" @openChange="onOpenChange" active-text-color="#000" @click="itemClick">
       <template v-for="item in mods" :key="item.systemmoduleid">
         <a-sub-menu v-if="item.apps.length > 1" :key="item.systemmoduleid" @click="modClick(item)">
           <template #title>
@@ -37,9 +37,23 @@ import { CalendarOutlined,PieChartOutlined} from '@ant-design/icons-vue'
 import {ConfigProvider, Modal } from 'ant-design-vue';
 const router = useRouter()
 const store = useAuthStore()
-let { mods,actMod } = storeToRefs(store)
+let { mods,actMod,system } = storeToRefs(store)
+
+let rootSubmenuKeys = ref([])
+let openKeys = ref([])
+let selectedKeys = ref([])
 
 const current = ref([])
+
+const onOpenChange = openKey => {
+  const latestOpenKey = openKey.find(key => openKeys.value.indexOf(key) === -1);
+  if (rootSubmenuKeys.value.indexOf(latestOpenKey) === -1) {
+    openKeys.value = openKey;
+  } else {
+    openKeys.value = latestOpenKey ? [latestOpenKey] : [];
+  }
+}
+
 const itemClick = (item, key, keyPath)=>{
   current.value = item.keyPath
 }
@@ -100,9 +114,18 @@ const setTheme = (themeName)=> {
   }
 
 }
+
+let getKeys = () => {
+  system.value.forEach(sys => {
+    sys.modules.forEach(mod => {
+      rootSubmenuKeys.value.push(mod.systemmoduleid)
+    })
+  })
+}
+
 onBeforeMount(()=>{
  setTheme('normal')
-
+  getKeys()
 })
 </script>
 <style scoped>

+ 16 - 6
src/components/upload2/index2.vue

@@ -45,6 +45,8 @@ const previewImage = ref('')
 const previewVideo = ref('')
 const previewTitle = ref('')
 let fileList = ref([])
+let currentIndex = ref(0)
+let callback = ref('')
 
 const handlePreview = async file => {
   previewImage.value = false
@@ -79,15 +81,19 @@ function getBase64(file) {
 /* 主动上传 */
 let change = (file) => {
   if (Object.keys(props.bindData).length) {
+    fileList.value = [...fileList.value,file]
     let index = file.name.lastIndexOf(".");
     let type = file.name.substr(index + 1);
     getUploadUrl(file.name, type,file)
   }
+  return false
 }
 
 /* 外部触发上传 */
-let toUpload = (callback) => {
-  callback()
+let toUpload = (fun) => {
+  callback.value = fun
+  console.log(callback.value);
+  currentIndex.value = 0
   fileList.value.forEach(file=>{
     let index = file.originFileObj.name.lastIndexOf(".");
     let type = file.originFileObj.name.substr(index + 1);
@@ -150,9 +156,11 @@ const createFileRecord = async (obsfilename)=> {
     "content":obj
   }
   const res = await Api.requested(param)
-  console.log(res.code)
-  if (res.code ===  1) {
-    emit('uploadSuccess',res)
+  emit('uploadSuccess',res)
+  currentIndex.value++
+  if (currentIndex.value >= fileList.value.length) {
+    callback.value && callback.value()
+    currentIndex.value = 0
   }
   if (Object.keys(props.bindData).length) {
     let data = JSON.parse(res.attinfos)
@@ -206,5 +214,7 @@ defineExpose({
 </script>
 
 <style scoped>
-
+/deep/.ant-upload-list-item-error {
+  border-color: #d9d9d9 !important;
+}
 </style>

+ 3 - 2
src/system/IOT/firmwareMag/index.vue

@@ -5,7 +5,7 @@
     </template>
     <template #tb_cell="{data}">
       <template v-if="data.column.dataIndex === 'operation'">
-        <Edit :data="data.record" @onSuccess="$refs.list.tableData()"></Edit>
+        <Edit :data="data.record" :disabled="!utils.hasPermission('update')" @onSuccess="$refs.list.tableData()"></Edit>
         <customBtn
           btnName="删 除"
           idName="20230619155402"
@@ -14,8 +14,9 @@
           type="link"
           message="确定删除当前固件吗?"
           @onSuccess="$refs.list.tableData()"
+          :disabled="!utils.hasPermission('delete')"
         />
-        <Site :data="data.record"></Site>
+        <Site :data="data.record" :disabled="!utils.hasPermission('site')"></Site>
       </template>
       <template v-else-if="data.column.dataIndex === 'isused'">
         <span :style="{color:utils.statusAndColor(data.record.isused ? '启用' : '停用')}">{{ data.record.isused ? '启用' : '停用' }}</span>

+ 5 - 1
src/system/IOT/firmwareMag/modules/Add.vue

@@ -58,7 +58,7 @@
     <template #extra>
       <a-space>
         <a-button @click="visible=false">关闭</a-button>
-        <a-button type="primary" @click="onSubmit">保存</a-button>
+        <a-button type="primary" @click="onSubmit" :loading="loading">保存</a-button>
       </a-space>
     </template>
   </a-drawer>
@@ -104,6 +104,7 @@ let productParam = ref({
 let bindData = ref({})
 let upload = ref()
 let formRef = ref()
+let loading = ref(false)
 let onSubmit = async () => {
   form.value.attinfos = upload.value.fileList.length ? '1' : '' 
   let isCheck = await formRef.value.validateFields()
@@ -117,12 +118,15 @@ let onSubmit = async () => {
     "ownerid": res.data.w_firmwareid,
     "usetype": 'default',
   }
+  loading.value = true
   upload.value.toUpload(() => {
+    console.log('触发1111');
     utils.message(res,'操作成功',() => {
       visible.value = false
       emit('onSuccess')
       upload.value.refresh()
       formRef.value.resetFields()
+      loading.value = false
     })
   })
   

+ 1 - 1
src/system/IOT/firmwareMag/modules/Edit.vue

@@ -1,5 +1,5 @@
 <template>
-  <a-button type="link" @click="editBtn">编辑</a-button>
+  <a-button type="link" @click="editBtn" :disabled="disabled">编辑</a-button>
   <a-drawer
     v-model:visible="visible"
     class="custom-class"

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff