소스 검색

新增项目结构

zhangqiOMG 2 년 전
부모
커밋
13ce209e74

+ 114 - 0
node_modules/.vite/deps/_metadata.json

@@ -1,83 +1,197 @@
 {
+<<<<<<< HEAD
   "hash": "4374df86",
   "browserHash": "ec4c1811",
+=======
+<<<<<<< HEAD
+  "hash": "0d9d205c",
+  "browserHash": "81d05683",
+=======
+  "hash": "18bbf35d",
+  "browserHash": "174209d7",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
   "optimized": {
     "@ant-design/icons-vue": {
       "src": "../../@ant-design/icons-vue/es/index.js",
       "file": "@ant-design_icons-vue.js",
+<<<<<<< HEAD
       "fileHash": "f1f31ea5",
+=======
+<<<<<<< HEAD
+      "fileHash": "8e02ca6b",
+=======
+      "fileHash": "5938cea3",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "ant-design-vue": {
       "src": "../../ant-design-vue/es/index.js",
       "file": "ant-design-vue.js",
+<<<<<<< HEAD
       "fileHash": "e958e50c",
+=======
+<<<<<<< HEAD
+      "fileHash": "829568bd",
+=======
+      "fileHash": "45f9b0ec",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "ant-design-vue/es/locale/zh_CN": {
       "src": "../../ant-design-vue/es/locale/zh_CN.js",
       "file": "ant-design-vue_es_locale_zh_CN.js",
+<<<<<<< HEAD
       "fileHash": "c30f749f",
+=======
+<<<<<<< HEAD
+      "fileHash": "a361d9d2",
+=======
+      "fileHash": "298e1579",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "axios": {
       "src": "../../axios/index.js",
       "file": "axios.js",
+<<<<<<< HEAD
       "fileHash": "3abc17ec",
+=======
+<<<<<<< HEAD
+      "fileHash": "7514f3e7",
+=======
+      "fileHash": "eb7df329",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "dayjs": {
       "src": "../../dayjs/dayjs.min.js",
       "file": "dayjs.js",
+<<<<<<< HEAD
       "fileHash": "b2b743af",
+=======
+<<<<<<< HEAD
+      "fileHash": "e5d604b4",
+=======
+      "fileHash": "e0c0caf7",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": true
     },
     "dayjs/locale/zh-cn": {
       "src": "../../dayjs/locale/zh-cn.js",
       "file": "dayjs_locale_zh-cn.js",
+<<<<<<< HEAD
       "fileHash": "5cd59bb2",
+=======
+<<<<<<< HEAD
+      "fileHash": "0ba0e49e",
+=======
+      "fileHash": "f34e927d",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": true
     },
     "js-md5": {
       "src": "../../js-md5/src/md5.js",
       "file": "js-md5.js",
+<<<<<<< HEAD
       "fileHash": "bd43d209",
+=======
+<<<<<<< HEAD
+      "fileHash": "5f92d7e8",
+=======
+      "fileHash": "9d8e97a5",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": true
     },
     "less": {
       "src": "../../less/dist/less.js",
       "file": "less.js",
+<<<<<<< HEAD
       "fileHash": "966ee37d",
+=======
+<<<<<<< HEAD
+      "fileHash": "1b1eb850",
+=======
+      "fileHash": "9b1ce05e",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": true
     },
     "mathjs": {
       "src": "../../mathjs/lib/esm/index.js",
       "file": "mathjs.js",
+<<<<<<< HEAD
       "fileHash": "156f6ef5",
+=======
+<<<<<<< HEAD
+      "fileHash": "a09badc9",
+=======
+      "fileHash": "2c610573",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "pinia": {
       "src": "../../pinia/dist/pinia.mjs",
       "file": "pinia.js",
+<<<<<<< HEAD
       "fileHash": "0eb43ba2",
+=======
+<<<<<<< HEAD
+      "fileHash": "24af44a4",
+=======
+      "fileHash": "fce44de8",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "pinia-plugin-persist": {
       "src": "../../pinia-plugin-persist/dist/pinia-persist.es.js",
       "file": "pinia-plugin-persist.js",
+<<<<<<< HEAD
       "fileHash": "6a023e4e",
+=======
+<<<<<<< HEAD
+      "fileHash": "029824d5",
+=======
+      "fileHash": "02794d5a",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "vue": {
       "src": "../../vue/dist/vue.runtime.esm-bundler.js",
       "file": "vue.js",
+<<<<<<< HEAD
       "fileHash": "41933eaa",
+=======
+<<<<<<< HEAD
+      "fileHash": "7bb21984",
+=======
+      "fileHash": "7ad6386c",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     },
     "vue-router": {
       "src": "../../vue-router/dist/vue-router.mjs",
       "file": "vue-router.js",
+<<<<<<< HEAD
       "fileHash": "346bff36",
+=======
+<<<<<<< HEAD
+      "fileHash": "6e6e5f1d",
+=======
+      "fileHash": "fe58ddc8",
+>>>>>>> 87373e87cb75bb4ba73be3d8c6001fb8426b1668
+>>>>>>> 5aba1a7dc7cf4a6d6cc2ce6cc757ee2d410ef8a6
       "needsInterop": false
     }
   },

+ 1 - 0
src/components/layout/modules/menu.vue

@@ -55,6 +55,7 @@ const modClick = (item)=>{
 const routeChange = (app)=>{
   // store.appData(app)
   router.push({path:app.path})
+  console.log(app.path);
 }
 const colorState = ref({})
 const setTheme = (themeName)=> {

+ 14 - 4
src/router/modelNormal.js

@@ -61,13 +61,23 @@ const moduleNormal = [
   },
   {
     path: '/vacation',
-    name: 'vacationmag',
+    name: 'vacation',
     meta: {
       title: '节假日管理',
-      name: 'vacationmag',
+      name: 'vacation',
       keepAlive:false
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/system/moduleNormal/systemSet/vacationMag/index.vue')
+    component: () => import(/* webpackChunkName: "about" */ '@/system/moduleNormal/vacationMag/index.vue')
+  },
+  {
+    path: '/remindconfig',
+    name: 'remindconfig',
+    meta: {
+      title: '系统提醒设置',
+      name: 'remindconfig',
+      keepAlive:false
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/system/moduleNormal/systemRemind/index.vue')
   },
   {
     path: '/coderule',
@@ -77,7 +87,7 @@ const moduleNormal = [
       name: 'coderule',
       keepAlive:false
     },
-    component: () => import(/* webpackChunkName: "about" */ '@/system/moduleNormal/systemSet/codeRuleMag/index.vue')
+    component: () => import(/* webpackChunkName: "about" */ '@/system/moduleNormal/codeRuleMag/index.vue')
   },
 
 ];

+ 0 - 0
src/system/moduleNormal/systemSet/codeRuleMag/index.vue → src/system/moduleNormal/codeRuleMag/index.vue


+ 0 - 0
src/system/moduleNormal/systemSet/codeRuleMag/modules/edit.vue → src/system/moduleNormal/codeRuleMag/modules/edit.vue


+ 28 - 0
src/system/moduleNormal/systemRemind/index.vue

@@ -0,0 +1,28 @@
+<template>
+  <listTemp ref="list" keyRouteName="accountno" :param="param" :tableName="'systemRemindTable'" :searchType="searchType">
+    <template #tb_cell="{data}">
+      <template v-if="data.column.dataIndex == 'operation'">
+        <Edit :data="data.record" @onSuccess="onSuccess"></Edit>
+      </template>
+    </template>
+  </listTemp>
+</template>
+
+<script setup>
+  import listTemp from '@/components/listTemplate/index.vue'
+  import Edit from './modules/Edit.vue'
+  import {ref, onMounted} from 'vue'
+
+  let searchType = ref([
+    {label:'搜索',key:'condition',type:'input'}
+  ])
+  let param = ref({id:20221220153101,content:{pageNumber:1,pageSize:20,where:{condition:''}}})
+  let list = ref()
+  let onSuccess = () => {
+    list.value.tableData()
+  }
+</script>
+
+<style  scoped>
+
+</style>

+ 160 - 0
src/system/moduleNormal/systemRemind/modules/Edit.vue

@@ -0,0 +1,160 @@
+<template>
+  <a-button type="link" @click="editBtn" :disabled="!utils.hasPermission('update')">编 辑</a-button>
+  <a-drawer
+    v-model:visible="visible"
+    class="custom-class"
+    title="编辑系统提醒"
+    placement="right"
+    width="900"
+    :closable="false"
+    @close="visible = false"
+  >
+    <a-form ref="formRef" :model="form" size="small" layout="vertical" mode="multiple">
+      <a-row :gutter="16">
+        <a-col :span="12">
+          <a-form-item  label="提醒名称" name="remindname" :rules="[{ required: true, message: '请输入提醒名称' }]">
+            <a-input v-model:value="form.remindname" placeholder="请输入提醒名称"></a-input>
+          </a-form-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-item  label="提醒标题" name="remindtitle" :rules="[{ required: true, message: '请输入提醒标题' }]">
+            <a-input v-model:value="form.remindtitle" placeholder="请输入提醒标题"></a-input>
+          </a-form-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-item  label="提醒方式" name="remindmode" :rules="[{ required: true, message: '请输入提醒名称' }]">
+            <a-select
+              v-model:value="form.remindmode"
+              mode="multiple"
+            >
+              <a-select-option value="短信" label="短信"></a-select-option>
+              <a-select-option value="邮件" label="邮件"></a-select-option>
+              <a-select-option value="弹框" label="弹框"></a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="24">
+          <a-form-item  label="提醒内容" name="content" :rules="[{ required: true, message: '请输入提醒内容' }]">
+            <a-input v-model:value="form.content" placeholder="请输入提醒内容"></a-input>
+          </a-form-item>
+        </a-col>
+        <a-col :span="24">
+          <a-form-item  label="备注说明" name="remarks">
+            <a-input v-model:value="form.remarks" placeholder="请输入备注说明"></a-input>
+          </a-form-item>
+        </a-col>
+        <a-col :span="24">
+          <a-form-item  label="角色权限" name="isrole">
+            <a-checkbox v-model:checked="form.isrole" :true-label="1" :false-label="0"></a-checkbox>
+          </a-form-item>
+        </a-col>
+        <a-col :span="24" v-if="form.isrole">
+          <a-form-item  label="角色选择" name="rolename">
+            <selectRole ref="Role" @selectRoles="selectRoles">
+              <template v-slot:input>
+                <a-input-search
+                  v-model:value="form.rolename"
+                  enter-button="添加"
+                  size="large"
+                  readonly
+                  @search="$refs.Role.modeVisible=true"
+                />
+              </template>
+            </selectRole>
+          </a-form-item>
+        </a-col>
+        <a-col :span="24">
+          <a-form-item  label="人员权限" name="isuser">
+            <a-checkbox v-model:checked="form.isuser" :true-label="1" :false-label="0"></a-checkbox>
+          </a-form-item>
+        </a-col>
+        <a-col :span="24" v-if="form.isuser">
+          <a-form-item  label="人员选择" name="username">
+            <selectPeople ref="People" @selectPeople="selectPeoples">
+              <template v-slot:input>
+                <a-input-search
+                  v-model:value="form.username"
+                  enter-button="添加"
+                  size="large"
+                  readonly
+                  @search="$refs.People.modeVisible=true"
+                />
+              </template>
+            </selectPeople>
+          </a-form-item>
+        </a-col>
+      </a-row>
+
+    </a-form>
+    <template #extra>
+      <a-space>
+        <a-button @click="visible=false">关闭</a-button>
+        <a-button type="primary" @click="onSubmit">保存</a-button>
+      </a-space>
+    </template>
+  </a-drawer>
+</template>
+
+<script setup>
+import selectRole from './selectRole.vue'
+import selectPeople from './selectPeople.vue'
+import {ref,defineProps,defineEmits} from 'vue'
+import Api from '@/api/api'
+import utils from '@/utils/utils'
+let props = defineProps({
+  data: Object
+})
+let emit = defineEmits(['onSuccess'])
+let visible = ref(false)
+let form = ref({
+  sys_remind_configid:0,
+  remindtitle:'',
+  remindmode:[],
+  content:'',
+  isrole:1,
+  roleids:[],
+  rolename:'',
+  isuser:1,
+  userids:[],
+  username:'',
+  issql:1,
+  sqlstr:''
+})
+let formRef = ref()
+
+let editBtn = () => {
+  visible.value = true
+  form.value = Object.assign({},form.value,props.data)
+  form.value.rolename = Object.values(form.value.rolemsg).join(',')
+  form.value.username = Object.values(form.value.usermsg).join(',')
+}
+
+let selectRoles = (data) => {
+  form.value.rolename = data.map(item => item.rolename).join(',')
+  form.value.roleids = data.map(item => item.roleid)
+  console.log('触发',form.value);
+}
+
+let selectPeoples = (data) => {
+  form.value.username = data.map(item => item.name).join(',')
+  form.value.userids = data.map(item => item.userid)
+}
+
+let onSubmit = async () => {
+  let isCheck = await formRef.value.validateFields()
+  if (!isCheck) return
+  let res = await Api.requested({
+    id:20221220153201,
+    content: form.value
+  })
+  utils.message(res,'编辑成功',()=>{
+    visible.value = false
+    emit('onSuccess')
+  })
+}
+
+</script>
+
+<style scoped>
+
+</style>

+ 53 - 0
src/system/moduleNormal/systemRemind/modules/selectPeople.vue

@@ -0,0 +1,53 @@
+<template>
+  <a-modal
+    v-model:visible="modeVisible"
+    class="custom-class"
+    title="选择人员"
+    placement="right"
+    width="1000px"
+    :closable="false"
+    @close="visible=false"
+    @ok="submit">
+    <normalTable rowKey="optiontypemxid" ref="list" size="small" :param="param" :columns="utils.TBLayout('staffTable')" @onSelect="onSelect">
+      <template #tb_cell="{data}">
+        {{ data.record[data.column.dataIndex] }}
+      </template>
+    </normalTable>
+  </a-modal>
+  <slot name="input"></slot>
+</template>
+
+<script setup>
+import {ref, defineProps, defineEmits} from 'vue'
+import utils from '@/utils/utils'
+import normalTable from '@/template/normalTable/index.vue'
+let modeVisible = ref(false)
+let param = ref({
+  "id": 20221031141102,
+  "content": {
+    "pageSize":20,
+    "pageNumber":1,
+    "where": {
+      "condition": "",
+    }
+  }
+})
+let emit = defineEmits(['selectPeople'])
+let result = ref('')
+let submit = () => {
+  emit('selectPeople',result.value)
+  modeVisible.value = false
+}
+let onSelect = (data) => {
+  console.log(data);
+  result.value = data
+}
+defineExpose({
+  modeVisible,
+})
+
+</script>
+
+<style scoped>
+
+</style>

+ 53 - 0
src/system/moduleNormal/systemRemind/modules/selectRole.vue

@@ -0,0 +1,53 @@
+<template>
+  <a-modal
+    v-model:visible="modeVisible"
+    class="custom-class"
+    title="选择角色"
+    placement="right"
+    width="1000px"
+    :closable="false"
+    @close="visible=false"
+    @ok="submit">
+    <normalTable rowKey="roleid" ref="list" size="small" :param="param" :columns="utils.TBLayout('roleTable')" @onSelect="onSelect">
+      <template #tb_cell="{data}">
+        {{ data.record[data.column.dataIndex] }}
+      </template>
+    </normalTable>
+  </a-modal>
+  <slot name="input"></slot>
+</template>
+
+<script setup>
+import {ref, defineProps, defineEmits} from 'vue'
+import utils from '@/utils/utils'
+import normalTable from '@/template/normalTable/index.vue'
+let modeVisible = ref(false)
+let param = ref({
+  "id": 20221101131902,
+  "content": {
+    "pageSize":20,
+    "pageNumber":1,
+    "where": {
+      "condition": "",
+    }
+  }
+})
+let emit = defineEmits(['selectRoles'])
+let result = ref('')
+let submit = () => {
+  emit('selectRoles',result.value)
+  modeVisible.value = false
+}
+let onSelect = (data) => {
+  console.log(data);
+  result.value = data
+}
+defineExpose({
+  modeVisible,
+})
+
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 0
src/system/moduleNormal/systemSet/vacationMag/index.vue → src/system/moduleNormal/vacationMag/index.vue

@@ -13,6 +13,7 @@
   const list = ref()
   let searchType = ref([
     {label:'范围',key:'isnext',type:'select',dataSource:[{remarks:'今年',value:'0'},{remarks:'明年',value:'1'}]},
+    {label:'时间范围',key:'dateRange',type:'datepickerRange',objKeys:['begindate','enddate']},
   ])
   let param = ref({
     "content": {