nanMing 1 年間 前
コミット
fcd8520bb3
4 ファイル変更996 行追加973 行削除
  1. 6 7
      api/dict.js
  2. 75 64
      common/common.js
  3. 4 1
      main.js
  4. 911 901
      pages/lr/index.vue

+ 6 - 7
api/dict.js

@@ -1,10 +1,9 @@
 import request from '@/common/request.js'
 
-// 登录方法
-export const login = (data) => {
-	return request({
-		url: '/auth/firstLogin',
-		method: 'post',
-		data: data
-	})
+// 根据字典类型查询字典数据信息
+export const getDicts = (dictType) => {
+  return request({
+    url: '/system/dict/data/type/' + dictType,
+    method: 'get',
+  })
 }

+ 75 - 64
common/common.js

@@ -1,12 +1,14 @@
+import { getDicts } from '@/api/dict.js'
+
 /**
  * 显示消息提示框
  * @param content 提示的标题
  */
 export function toast(content) {
-	uni.showToast({
-		icon: 'none',
-		title: content
-	})
+  uni.showToast({
+    icon: 'none',
+    title: content
+  })
 }
 
 /**
@@ -14,17 +16,17 @@ export function toast(content) {
  * @param content 提示的标题
  */
 export function showConfirm(content) {
-	return new Promise((resolve, reject) => {
-		uni.showModal({
-			title: '提示',
-			content: content,
-			cancelText: '取消',
-			confirmText: '确定',
-			success: function(res) {
-				resolve(res)
-			}
-		})
-	})
+  return new Promise((resolve, reject) => {
+    uni.showModal({
+      title: '提示',
+      content: content,
+      cancelText: '取消',
+      confirmText: '确定',
+      success: function(res) {
+        resolve(res)
+      }
+    })
+  })
 }
 
 /**
@@ -32,66 +34,75 @@ export function showConfirm(content) {
  * @param params 参数
  */
 export function tansParams(params) {
-	let result = ''
-	for (const propName of Object.keys(params)) {
-		const value = params[propName]
-		var part = encodeURIComponent(propName) + "="
-		if (value !== null && value !== "" && typeof(value) !== "undefined") {
-			if (typeof value === 'object') {
-				for (const key of Object.keys(value)) {
-					if (value[key] !== null && value[key] !== "" && typeof(value[key]) !== 'undefined') {
-						let params = propName + '[' + key + ']'
-						var subPart = encodeURIComponent(params) + "="
-						result += subPart + encodeURIComponent(value[key]) + "&"
-					}
-				}
-			} else {
-				result += part + encodeURIComponent(value) + "&"
-			}
-		}
-	}
-	return result
+  let result = ''
+  for (const propName of Object.keys(params)) {
+    const value = params[propName]
+    var part = encodeURIComponent(propName) + "="
+    if (value !== null && value !== "" && typeof(value) !== "undefined") {
+      if (typeof value === 'object') {
+        for (const key of Object.keys(value)) {
+          if (value[key] !== null && value[key] !== "" && typeof(value[key]) !== 'undefined') {
+            let params = propName + '[' + key + ']'
+            var subPart = encodeURIComponent(params) + "="
+            result += subPart + encodeURIComponent(value[key]) + "&"
+          }
+        }
+      } else {
+        result += part + encodeURIComponent(value) + "&"
+      }
+    }
+  }
+  return result
 }
 
 // 返回上一页
 export function back() {
-	uni.navigateBack({
-		delta: 1
-	})
+  uni.navigateBack({
+    delta: 1
+  })
 }
 
 // 页面跳转
 export function navigateTo(url) {
-	uni.navigateTo({
-		url: url
-	})
+  uni.navigateTo({
+    url: url
+  })
 }
 
 // 回显数据字典
-export function selectDictLabel(datas, value) {
-	if (value === undefined) {
-		return "";
-	}
-	var actions = [];
-	Object.keys(datas).some((key) => {
-		if (datas[key].dictValue == ('' + value)) {
-			actions.push(datas[key].dictLabel);
-			return true;
-		}
-	})
-	if (actions.length === 0) {
-		actions.push(value);
-	}
-	return actions.join('');
+export function transDictLabel(datas, value) {
+  if (value === undefined) {
+    return "";
+  }
+  var actions = [];
+  Object.keys(datas).some((key) => {
+    if (datas[key].dictValue == ('' + value)) {
+      actions.push(datas[key].dictLabel);
+      return true;
+    }
+  })
+  if (actions.length === 0) {
+    actions.push(value);
+  }
+  return actions.join('');
+}
+
+/**
+ * 批量获取字典数据
+ * dictTypeArr: 字典名称数组
+ * result: 接数据容器
+ */
+export function getDictList(dictTypeArr, result) {
+  dictTypeArr.forEach(dictType => {
+    getDicts(dictType).then(res => {
+      if (res.code !== 200) return
+      result[dictType] = changeDictAttrName(res.data)
+    })
+  })
 }
 
-// 递归遍历多维数组(未完成)
-export function traverseArray(arr, callback) {
-	if (Array.isArray(arr)) {
-		arr.forEach((element) => {
-			traverseArray(element);
-		});
-	} else {
-		callback(arr)
-	}
+// 更改字典数据的属性名
+export function changeDictAttrName(array) {
+  let result = JSON.stringify(array).replaceAll('dictLabel', 'text').replaceAll('dictValue', 'value')
+  return JSON.parse(result)
 }

+ 4 - 1
main.js

@@ -1,8 +1,11 @@
 import App from './App'
 
-import { toast } from './common/common.js'
+import { toast, transDictLabel, changeDictAttrName, getDictList } from './common/common.js'
 
 Vue.prototype.toast = toast
+Vue.prototype.transDictLabel = transDictLabel
+Vue.prototype.changeDictAttrName = changeDictAttrName
+Vue.prototype.getDictList = getDictList
 
 // #ifndef VUE3
 import Vue from 'vue'

ファイルの差分が大きいため隠しています
+ 911 - 901
pages/lr/index.vue