Browse Source

公共配置

CzRger 1 year ago
parent
commit
f142d62e28

+ 6 - 0
src/api/modules/config.ts

@@ -14,3 +14,9 @@ export const getConfigConfigKey = (key: any) => handle({
   url: `/${suffix}/config/configKey/${key}`,
   method: 'get',
 })
+//  公共配置 > 修改键值
+export const editConfigEditConfigKey = (params: any) => handle({
+  url: `/${suffix}/config/edit/configKey`,
+  method: 'put',
+  params
+})

+ 5 - 0
src/store/modules/dictionary-define.ts

@@ -3,6 +3,10 @@ export const dictionaryDefine = {
 	login_status: ['loginStatusList', 'loginStatusMap', 'loginStatusObjMap'], //	登录日志-登录状态
 	notice_type: ['noticeTypeList', 'noticeTypeMap', 'noticeTypeObjMap'], //	通知公告-消息类型
 	notice_status: ['noticeStatusList', 'noticeStatusMap', 'noticeStatusObjMap'], //	通知公告-消息状态
+	config_sign_remind_time: ['configSignRemindTimeList', 'configSignRemindTimeMap', 'configSignRemindTimeObjMap'], //	公共配置-签到提醒时间
+	config_log_remind_time: ['configLogRemindTimeList', 'configLogRemindTimeMap', 'configLogRemindTimeObjMap'], //	公共配置-日志提醒时间
+	config_week_remind_time: ['configWeekRemindTimeList', 'configWeekRemindTimeMap', 'configWeekRemindTimeObjMap'], //	公共配置-周报提醒时间
+	config_week_submit_date: ['configWeekSubmitDateList', 'configWeekSubmitDateMap', 'configWeekSubmitDateObjMap'], //	公共配置-周报提交星期
 }
 
 const stateMap = {}
@@ -11,4 +15,5 @@ Object.keys(dictionaryDefine).map(i => {
 	stateMap[dictionaryDefine[i][1]] = new Map()
 	stateMap[dictionaryDefine[i][2]] = new Map()
 })
+// @ts-ignore
 export const dictionary = stateMap

+ 49 - 46
src/views/system/public-configuration/index.vue

@@ -14,7 +14,8 @@
                   :span="24"
                   link="time"
                   v-model:param="form['sign.begin.time']"
-                  :clearable="false"/>
+                  :clearable="false"
+                  @change="editKey('sign.begin.time')"/>
             </div>
           </div>
           <div class="item">
@@ -23,16 +24,10 @@
               <CusFormColumn
                   :span="24"
                   link="select"
-                  static
                   v-model:param="form['sign.remind.time']"
-                  labelKey="label"
-                  valueKey="value"
-                  :options="[
-                    {label: '类型一', value: '1'},
-                    {label: '类型二', value: '2'},
-                    {label: '类型三', value: '3'},
-                  ]"
-                  :clearable="false"/>
+                  :options="$store.state.dictionary.configSignRemindTimeList"
+                  :clearable="false"
+                  @change="editKey('sign.remind.time')"/>
             </div>
           </div>
           <div class="item">
@@ -42,7 +37,8 @@
                   :span="24"
                   link="time"
                   v-model:param="form['sign.end.time']"
-                  :clearable="false"/>
+                  :clearable="false"
+                  @change="editKey('sign.end.time')"/>
             </div>
           </div>
         </div>
@@ -60,7 +56,8 @@
                   :span="24"
                   link="time"
                   v-model:param="form['log.submit.time']"
-                  :clearable="false"/>
+                  :clearable="false"
+                  @change="editKey('log.submit.time')"/>
             </div>
           </div>
           <div class="item">
@@ -69,16 +66,10 @@
               <CusFormColumn
                   :span="24"
                   link="select"
-                  static
                   v-model:param="form['log.remind.time']"
-                  labelKey="label"
-                  valueKey="value"
-                  :options="[
-                    {label: '类型一', value: '1'},
-                    {label: '类型二', value: '2'},
-                    {label: '类型三', value: '3'},
-                  ]"
-                  :clearable="false"/>
+                  :options="$store.state.dictionary.configLogRemindTimeList"
+                  :clearable="false"
+                  @change="editKey('log.remind.time')"/>
             </div>
           </div>
         </div>
@@ -96,23 +87,18 @@
                 <CusFormColumn
                     :span="24"
                     link="select"
-                    static
                     v-model:param="form['week.submit.date']"
-                    labelKey="label"
-                    valueKey="value"
-                    :options="[
-                      {label: '类型一', value: '1'},
-                      {label: '类型二', value: '2'},
-                      {label: '类型三', value: '3'},
-                    ]"
-                    :clearable="false"/>
+                    :options="$store.state.dictionary.configWeekSubmitDateList"
+                    :clearable="false"
+                    @change="editKey('week.submit.date')"/>
               </div>
              <div class="col" v-loading="loading['week.submit.time']">
                <CusFormColumn
                    :span="24"
                    link="time"
                    v-model:param="form['week.submit.time']"
-                   :clearable="false"/>
+                   :clearable="false"
+                   @change="editKey('week.submit.time')"/>
              </div>
             </div>
           </div>
@@ -122,16 +108,10 @@
               <CusFormColumn
                   :span="24"
                   link="select"
-                  static
                   v-model:param="form['week.remind.time']"
-                  labelKey="label"
-                  valueKey="value"
-                  :options="[
-                    {label: '类型一', value: '1'},
-                    {label: '类型二', value: '2'},
-                    {label: '类型三', value: '3'},
-                  ]"
-                  :clearable="false"/>
+                  :options="$store.state.dictionary.configWeekRemindTimeList"
+                  :clearable="false"
+                  @change="editKey('week.remind.time')"/>
             </div>
           </div>
         </div>
@@ -155,7 +135,7 @@ import {
 } from 'vue'
 import {useStore} from 'vuex'
 import {useRouter, useRoute} from 'vue-router'
-import {getConfigConfigKey} from "@/api/modules/config";
+import {editConfigEditConfigKey, getConfigConfigKey} from "@/api/modules/config";
 import { ElMessage } from 'element-plus';
 
 export default defineComponent({
@@ -177,10 +157,6 @@ export default defineComponent({
         'week.submit.time': '',
         'week.remind.time': '',
       },
-      signForm: {
-      },
-      dailyForm: {},
-      weeklyForm: {},
       loading: {
         'sign.begin.time': false,
         'sign.remind.time': false,
@@ -192,6 +168,12 @@ export default defineComponent({
         'week.remind.time': false,
       }
     })
+    const initDictionary = () => {
+      store.dispatch('dictionary/LOAD_DICT_LIST', 'config_sign_remind_time')
+      store.dispatch('dictionary/LOAD_DICT_LIST', 'config_log_remind_time')
+      store.dispatch('dictionary/LOAD_DICT_LIST', 'config_week_remind_time')
+      store.dispatch('dictionary/LOAD_DICT_LIST', 'config_week_submit_date')
+    }
     const initKey = (key) => {
       state.loading[key] = true
       state.form[key] = ''
@@ -206,7 +188,27 @@ export default defineComponent({
         state.loading[key] = false
       })
     }
+    const editKey = (key) => {
+      //  select onChange方法有延迟,为了兼容time和select,加个延时
+      setTimeout(() => {
+        state.loading[key] = true
+        that.$api.editConfigEditConfigKey({
+          configKey: key,
+          configValue: state.form[key]
+        }).then(res => {
+          if (res.code === 200) {
+            ElMessage.success(res.message)
+            initKey(key)
+          } else {
+            ElMessage.error(res.message)
+          }
+        }).catch(() => {
+          state.loading[key] = false
+        })
+      }, 100)
+    }
     onMounted(() => {
+      initDictionary()
       initKey('sign.begin.time')
       initKey('sign.remind.time')
       initKey('sign.end.time')
@@ -217,7 +219,8 @@ export default defineComponent({
       initKey('week.remind.time')
     })
     return {
-      ...toRefs(state)
+      ...toRefs(state),
+      editKey
     }
   },
 })