diff --git a/.env.dev-local b/.env.dev-local
index d3add9f..82069dd 100644
--- a/.env.dev-local
+++ b/.env.dev-local
@@ -17,4 +17,4 @@ VITE_IMAGE_BASE_PATH = http://localhost:9999
# 代码生成服务地址
-VITE_GEN_PROXY_PATH = http://192.168.110.156:5003
+VITE_GEN_PROXY_PATH = http://127.0.0.1:5003
diff --git a/.env.development b/.env.development
index d6df8ef..57cefe0 100644
--- a/.env.development
+++ b/.env.development
@@ -8,18 +8,18 @@ VITE_OPEN = true
ENV = 'development'
# ADMIN 服务地址
-VITE_ADMIN_PROXY_PATH = http://47.96.250.9:8089/api/ # 测试线上
+# VITE_ADMIN_PROXY_PATH = http://47.96.250.9:8089/api/ # 测试线上
# VITE_ADMIN_PROXY_PATH = http://pjcloud.center.takin.cc/
# VITE_ADMIN_PROXY_PATH = http://localhost:9999/
-# VITE_ADMIN_PROXY_PATH = http://192.168.101.64:9999/ # 邓-本地
+VITE_ADMIN_PROXY_PATH = http://192.168.101.64:9999/ # 邓-本地
# VITE_ADMIN_PROXY_PATH = http://59.202.170.152:81/api # 正式环境线上
# 图片访问基础地址
# VITE_IMAGE_BASE_PATH = http://47.96.250.9:8089/api # 测试线上
# VITE_IMAGE_BASE_PATH = http://pjcloud.center.takin.cc
# VITE_IMAGE_BASE_PATH = http://localhost:9999
-# VITE_IMAGE_BASE_PATH = http://192.168.101.64:9999 # 邓-本地
-VITE_IMAGE_BASE_PATH = http://59.202.170.152:81/api/ # 正式环境线上
+VITE_IMAGE_BASE_PATH = http://192.168.101.64:9999 # 邓-本地
+# VITE_IMAGE_BASE_PATH = http://59.202.170.152:81/api/ # 正式环境线上
# 代码生成服务地址
VITE_GEN_PROXY_PATH = http://192.168.110.156:5003
diff --git a/src/api/hard/hard-total.ts b/src/api/hard/hard-total.ts
index ee8e33e..9e503cf 100644
--- a/src/api/hard/hard-total.ts
+++ b/src/api/hard/hard-total.ts
@@ -20,6 +20,18 @@ export function pageListSb(query?: any) {
})
}
+export function pagePayType(query?: any) {
+ return request({
+ url: "/hard/hard-total/page-list-payType",
+ method: "post",
+ params: {
+ current: query.current,
+ size: query.size,
+ },
+ data: query,
+ })
+}
+
export function pageListCs(query?: any) {
return request({
url: "/hard/hard-total/page-list-cs",
diff --git a/src/api/integrated/lostAndFound.ts b/src/api/integrated/lostAndFound.ts
new file mode 100644
index 0000000..4feaf1d
--- /dev/null
+++ b/src/api/integrated/lostAndFound.ts
@@ -0,0 +1,41 @@
+import request from "/@/utils/request"
+
+export function fetchList(query?: Object) {
+ return request({
+ url: '/integrated/lostAndFound/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function addObj(obj?: Object) {
+ return request({
+ url: '/integrated/lostAndFound',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id?: string) {
+ return request({
+ url: '/integrated/lostAndFound/' + id,
+ method: 'get'
+ })
+}
+
+export function delObjs(ids?: Object) {
+ return request({
+ url: '/integrated/lostAndFound',
+ method: 'delete',
+ data: ids
+ })
+}
+
+export function putObj(obj?: Object) {
+ return request({
+ url: '/integrated/lostAndFound',
+ method: 'put',
+ data: obj
+ })
+}
+
diff --git a/src/api/integrated/maintenanceOrder.ts b/src/api/integrated/maintenanceOrder.ts
new file mode 100644
index 0000000..ecff95c
--- /dev/null
+++ b/src/api/integrated/maintenanceOrder.ts
@@ -0,0 +1,41 @@
+import request from "/@/utils/request"
+
+export function fetchList(query?: Object) {
+ return request({
+ url: '/integrated/maintenanceOrder/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function addObj(obj?: Object) {
+ return request({
+ url: '/integrated/maintenanceOrder',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id?: string) {
+ return request({
+ url: '/integrated/maintenanceOrder/' + id,
+ method: 'get'
+ })
+}
+
+export function delObjs(ids?: Object) {
+ return request({
+ url: '/integrated/maintenanceOrder',
+ method: 'delete',
+ data: ids
+ })
+}
+
+export function putObj(obj?: Object) {
+ return request({
+ url: '/integrated/maintenanceOrder',
+ method: 'put',
+ data: obj
+ })
+}
+
diff --git a/src/api/wallet/mch-manage.ts b/src/api/wallet/mch-manage.ts
index fd9bf27..8e0f880 100644
--- a/src/api/wallet/mch-manage.ts
+++ b/src/api/wallet/mch-manage.ts
@@ -1,5 +1,14 @@
import request from "/@/utils/request"
+// 刷新商户二维码
+export function refreshQrcode(query?: Object) {
+ return request({
+ url: "/wallet/mch-manage/refresh-qrcode",
+ method: "get",
+ params: query,
+ })
+}
+
export function select(query?: Object) {
return request({
url: "/wallet/mch-manage/select",
diff --git a/src/api/wallet/wallet-transaction.ts b/src/api/wallet/wallet-transaction.ts
index 48b648a..f30402c 100644
--- a/src/api/wallet/wallet-transaction.ts
+++ b/src/api/wallet/wallet-transaction.ts
@@ -12,6 +12,18 @@ export function pageCz(query?: any) {
})
}
+export function pageJz(query?: any) {
+ return request({
+ url: "/wallet/wallet-transaction/page-jz",
+ method: "post",
+ params: {
+ current: query.current,
+ size: query.size,
+ },
+ data: query,
+ })
+}
+
export function pageXf(query?: any) {
return request({
url: "/wallet/wallet-transaction/page-xf",
diff --git a/src/views/canteen/boxesAvailability/index.vue b/src/views/canteen/boxesAvailability/index.vue
index f8821ee..e587a14 100644
--- a/src/views/canteen/boxesAvailability/index.vue
+++ b/src/views/canteen/boxesAvailability/index.vue
@@ -57,16 +57,13 @@
-
-
-
-
+
diff --git a/src/views/canteen/boxesBooking/index.vue b/src/views/canteen/boxesBooking/index.vue
index 5cf0905..d9a4c74 100644
--- a/src/views/canteen/boxesBooking/index.vue
+++ b/src/views/canteen/boxesBooking/index.vue
@@ -3,14 +3,11 @@
-
-
-
-
-
+
+
-
-
+
+
查询
@@ -19,29 +16,29 @@
-
-
- 新 增
-
-
- 删 除
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
-
-
-
-
-
-
+
diff --git a/src/views/flow/create/all.vue b/src/views/flow/create/all.vue
index 26e8cb5..04bf5be 100644
--- a/src/views/flow/create/all.vue
+++ b/src/views/flow/create/all.vue
@@ -139,7 +139,7 @@ onMounted(() => {
store.step1.remark = data.remark
store.step1.groupId = data.groupId
store.step1.businessKey = data.businessKey
-
+ // store.step1.formDetail = data.formDetail
store.setStep2(JSON.parse(data.formItems))
step3NodeConfig = JSON.parse(data.process)
})
diff --git a/src/views/flow/create/rules/form-rules.ts b/src/views/flow/create/rules/form-rules.ts
new file mode 100644
index 0000000..bbea518
--- /dev/null
+++ b/src/views/flow/create/rules/form-rules.ts
@@ -0,0 +1,354 @@
+import type { FormRule, DragRule } from './types';
+import other, {generateUUID} from "/@/utils/other";
+
+// Create a map of rule creators
+const ruleCreators: Record DragRule> = {
+ selectUser: () => ({
+ menu: 'biz',
+ icon: 'icon-table-form2',
+ label: '人员',
+ name: 'SelectUser',
+ mask: true,
+ rule() {
+ return {
+ type: 'OrgSelector',
+ field: 'SelectUser' + other.getNonDuplicateID(),
+ title: '人员',
+ $required: true,
+ props: {
+ type: 'user',
+ },
+ };
+ },
+ props() {
+ return [
+ {
+ type: 'switch',
+ title: '多选',
+ field: 'multiple',
+ value: true,
+ },
+ {
+ type: 'switch',
+ title: '禁用',
+ field: 'disabled',
+ value: false,
+ },
+ {
+ type: 'switch',
+ title: '选择自己',
+ field: 'selectSelf',
+ value: true,
+ },
+ ];
+ },
+ }),
+ selectDept: () => ({
+ menu: 'biz',
+ icon: 'icon-group',
+ label: '部门',
+ name: 'selectDept',
+ mask: true,
+ rule() {
+ return {
+ type: 'OrgSelector',
+ field: 'selectDept' + other.getNonDuplicateID(),
+ title: '部门',
+ $required: true,
+ props: {
+ type: 'dept',
+ },
+ };
+ },
+ props() {
+ return [
+ {
+ type: 'switch',
+ title: '多选',
+ field: 'multiple',
+ value: true,
+ },
+ {
+ type: 'switch',
+ title: '禁用',
+ field: 'disabled',
+ value: false,
+ }
+ ];
+ },
+ }),
+ uploadFile: () => ({
+ menu: 'biz',
+ icon: 'icon-folder',
+ label: '上传',
+ name: 'UploadFile'+ other.getNonDuplicateID(),
+ mask: true,
+ rule() {
+ return {
+ type: 'UploadFile',
+ field: 'UploadFile',
+ title: '文件上传',
+ $required: true,
+ props: {},
+ };
+ },
+ props() {
+ return [
+ {
+ type: 'input',
+ title: '上传地址',
+ field: 'uploadFileUrl',
+ value: '/admin/sys-file/upload',
+ },
+ {
+ type: 'number',
+ title: '数量限制',
+ field: 'limit',
+ value: 5,
+ props: {
+ min: 1,
+ max: 100,
+ },
+ },
+ {
+ type: 'number',
+ title: '大小限制(MB)',
+ field: 'fileSize',
+ value: 5,
+ props: {
+ min: 1,
+ max: 500,
+ },
+ },
+ {
+ type: 'select',
+ title: '上传类型',
+ field: 'type',
+ value: 'default',
+ options: [
+ { label: '默认', value: 'default' },
+ { label: '简单', value: 'simple' },
+ ],
+ },
+ {
+ type: 'input',
+ title: '上传目录',
+ field: 'dir',
+ value: '',
+ },
+ {
+ type: 'switch',
+ title: '自动上传',
+ field: 'autoUpload',
+ value: true,
+ },
+ {
+ type: 'switch',
+ title: '显示提示',
+ field: 'isShowTip',
+ value: true,
+ },
+ {
+ type: 'switch',
+ title: '禁用',
+ field: 'disabled',
+ value: false,
+ },
+ {
+ type: 'select',
+ title: '文件类型',
+ field: 'fileType',
+ value: ['png', 'jpg', 'jpeg', 'doc', 'xls', 'ppt', 'txt', 'pdf', 'docx', 'xlsx', 'pptx'],
+ props: {
+ multiple: true,
+ },
+ options: [
+ { label: 'PNG', value: 'png' },
+ { label: 'JPG', value: 'jpg' },
+ { label: 'JPEG', value: 'jpeg' },
+ { label: 'DOC', value: 'doc' },
+ { label: 'DOCX', value: 'docx' },
+ { label: 'XLS', value: 'xls' },
+ { label: 'XLSX', value: 'xlsx' },
+ { label: 'PPT', value: 'ppt' },
+ { label: 'PPTX', value: 'pptx' },
+ { label: 'PDF', value: 'pdf' },
+ { label: 'TXT', value: 'txt' },
+ ],
+ },
+ ];
+ },
+ }),
+ chinaArea: () => ({
+ menu: 'biz',
+ icon: 'icon-subform',
+ label: '地区选择',
+ name: 'ChinaArea',
+ mask: true,
+ rule() {
+ return {
+ type: 'ChinaArea',
+ field: 'ChinaArea' + other.getNonDuplicateID(),
+ title: '地区选择',
+ $required: true,
+ props: {},
+ };
+ },
+ props() {
+ return [
+ {
+ type: 'number',
+ title: '层级',
+ field: 'type',
+ value: 4,
+ props: {
+ min: 1,
+ max: 4,
+ },
+ },
+ {
+ type: 'switch',
+ title: '禁用',
+ field: 'disabled',
+ value: false,
+ },
+ {
+ type: 'switch',
+ title: '子级必选',
+ field: 'plus',
+ value: false,
+ },
+ {
+ type: 'switch',
+ title: '懒加载',
+ field: 'lazy',
+ value: false,
+ },
+ ];
+ },
+ }),
+ sign: () => ({
+ menu: 'biz',
+ icon: 'icon-edit',
+ label: '签名',
+ name: 'Sign',
+ mask: true,
+ rule() {
+ return {
+ type: 'Sign',
+ field: 'Sign'+ other.getNonDuplicateID(),
+ title: '签名',
+ $required: true,
+ props: {},
+ };
+ },
+ props() {
+ return [
+ {
+ type: 'number',
+ title: '宽度',
+ field: 'width',
+ value: 300,
+ props: {
+ min: 100,
+ max: 1000,
+ },
+ },
+ {
+ type: 'number',
+ title: '高度',
+ field: 'height',
+ value: 150,
+ props: {
+ min: 50,
+ max: 500,
+ },
+ },
+ {
+ type: 'number',
+ title: '线宽',
+ field: 'lineWidth',
+ value: 4,
+ props: {
+ min: 1,
+ max: 20,
+ },
+ },
+ {
+ type: 'colorPicker',
+ title: '线条颜色',
+ field: 'lineColor',
+ value: '#000000',
+ },
+ {
+ type: 'colorPicker',
+ title: '背景颜色',
+ field: 'bgColor',
+ value: '',
+ },
+ {
+ type: 'switch',
+ title: '裁剪空白',
+ field: 'isCrop',
+ value: false,
+ },
+ {
+ type: 'switch',
+ title: '清除背景',
+ field: 'isClearBgColor',
+ value: true,
+ },
+ ];
+ },
+ }),
+ dictSelect: () => ({
+ menu: 'biz',
+ icon: 'icon-select',
+ label: '字典选择',
+ name: 'DictSelect' + other.getNonDuplicateID(),
+ mask: true,
+ rule() {
+ return {
+ type: 'DictSelect',
+ field: 'DictSelect',
+ title: '字典',
+ $required: true,
+ props: {},
+ };
+ },
+ props() {
+ return [
+ {
+ type: 'input',
+ title: '字典类型',
+ field: 'dictType',
+ value: '',
+ props: {
+ placeholder: '请输入字典类型',
+ },
+ },
+ {
+ type: 'switch',
+ title: '多选',
+ field: 'multiple',
+ value: false,
+ },
+ {
+ type: 'switch',
+ title: '可清除',
+ field: 'clearable',
+ value: true,
+ },
+ {
+ type: 'switch',
+ title: '禁用',
+ field: 'disabled',
+ value: false,
+ },
+ ];
+ },
+ }),
+};
+
+// Export all rules as an array
+export const rules: FormRule[] = Object.values(ruleCreators).map((creator) => creator());
diff --git a/src/views/flow/create/step1.vue b/src/views/flow/create/step1.vue
index 2b4ac74..eca8975 100644
--- a/src/views/flow/create/step1.vue
+++ b/src/views/flow/create/step1.vue
@@ -19,6 +19,9 @@
+
+
+
diff --git a/src/views/flow/group/index.vue b/src/views/flow/group/index.vue
index a6e6a34..541e10a 100644
--- a/src/views/flow/group/index.vue
+++ b/src/views/flow/group/index.vue
@@ -51,6 +51,11 @@
{{ row.businessKey }}
+
+
+
+
+
diff --git a/src/views/flow/i18n/zh-cn.ts b/src/views/flow/i18n/zh-cn.ts
index bc797a3..16f61c7 100644
--- a/src/views/flow/i18n/zh-cn.ts
+++ b/src/views/flow/i18n/zh-cn.ts
@@ -43,6 +43,8 @@ export default {
defaultTip: '默认',
servicePrefix: '服务前缀',
servicePrefixTips: '请输入服务前缀',
- businessKey:'业务key'
+ businessKey:'业务key',
+ formDetail:'表单详情路由',
+ formDetailTips:'请输入表单详情路由,例如 /admin/system/user/detail.vue'
},
};
diff --git a/src/views/flow/workflow/components/FormCreate.vue b/src/views/flow/workflow/components/FormCreate.vue
new file mode 100644
index 0000000..dc7634f
--- /dev/null
+++ b/src/views/flow/workflow/components/FormCreate.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
diff --git a/src/views/flow/workflow/utils/formPermissions.ts b/src/views/flow/workflow/utils/formPermissions.ts
new file mode 100644
index 0000000..28d35ec
--- /dev/null
+++ b/src/views/flow/workflow/utils/formPermissions.ts
@@ -0,0 +1,50 @@
+type FormItem = {
+ field: string;
+ props?: Record;
+ children?: FormItem[];
+ hidden?: boolean;
+ [key: string]: any;
+};
+
+export function applyPermissionsToItem(item: FormItem, formPerms: Record): FormItem {
+ // 如果权限为空,默认设置为只读 'R'
+ const permission = formPerms?.[item.field] || 'E';
+
+ // 检查字段权限
+ if (permission === 'R') {
+ return {
+ ...item,
+ props: {
+ ...(item.props || {}),
+ disabled: true,
+ },
+ };
+ }
+
+ if (permission === 'H') {
+ return {
+ ...item,
+ hidden: true,
+ };
+ }
+
+ // 如果是 'E' 或其他情况,返回原始item
+ return item;
+}
+
+export function processFormItemsWithPerms(items: FormItem[], formPerms: Record): FormItem[] {
+ return items.map((item) => {
+ // 处理当前项的权限
+ const processedItem = applyPermissionsToItem(item, formPerms);
+
+ // 如果有子项,递归处理子项的权限
+ if (Array.isArray(item.children)) {
+ return {
+ ...processedItem,
+ children: processFormItemsWithPerms(item.children, formPerms),
+ };
+ }
+
+ return processedItem;
+ });
+}
diff --git a/src/views/hard/hard-sb/index.vue b/src/views/hard/hard-payType-total/index.vue
similarity index 89%
rename from src/views/hard/hard-sb/index.vue
rename to src/views/hard/hard-payType-total/index.vue
index 930347e..74ec3b3 100644
--- a/src/views/hard/hard-sb/index.vue
+++ b/src/views/hard/hard-payType-total/index.vue
@@ -14,7 +14,7 @@
-
+
@@ -31,7 +31,7 @@
-
+
-
+
-
@@ -71,7 +67,7 @@
- {{ row.totalPayCount }}
+ {{ row.totalPayCount || 0 }}
@@ -85,7 +81,7 @@
- {{ row.totalRefundCount }}
+ {{ row.totalRefundCount || 0 }}
@@ -99,7 +95,7 @@
- {{ row.totalProfitCount }}
+ {{ row.totalProfitCount || 0 }}
@@ -126,12 +122,12 @@ const multiple = ref(true)
const draggableDepTreeRef = ref() // 树组件ref引用
// 定义查询字典
-const { hard_type } = useDict("hard_type")
+const { hard_pay_type } = useDict("hard_pay_type")
const state: BasicTableProps = reactive({
isPage: false,
queryForm: {},
- pageList: hardTotalApi.pageListSb,
+ pageList: hardTotalApi.pagePayType,
})
// table hook
@@ -139,7 +135,7 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, sortChangeHandle, do
// 导出excel
const exportExcel = () => {
- downBlobFile("/hard/hard-total/export-sb", Object.assign(state.queryForm), "设备交易记录.xlsx")
+ downBlobFile("/hard/hard-total/export-payType", Object.assign(state.queryForm), "设备交易记录.xlsx")
}
const getSummaries = (param: any) => {
diff --git a/src/views/integrated/lostAndFound/form.vue b/src/views/integrated/lostAndFound/form.vue
new file mode 100644
index 0000000..a3defdd
--- /dev/null
+++ b/src/views/integrated/lostAndFound/form.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/integrated/lostAndFound/index.vue b/src/views/integrated/lostAndFound/index.vue
new file mode 100644
index 0000000..0b9a6b4
--- /dev/null
+++ b/src/views/integrated/lostAndFound/index.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+ 重置
+
+
+
+
+
+
+ 新 增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/integrated/maintenanceOrder/form.vue b/src/views/integrated/maintenanceOrder/form.vue
new file mode 100644
index 0000000..42da4f0
--- /dev/null
+++ b/src/views/integrated/maintenanceOrder/form.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/integrated/maintenanceOrder/index.vue b/src/views/integrated/maintenanceOrder/index.vue
new file mode 100644
index 0000000..fff74bc
--- /dev/null
+++ b/src/views/integrated/maintenanceOrder/index.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+ 重置
+
+
+
+
+
+
+ 新 增
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wallet/mch-manage/index.vue b/src/views/wallet/mch-manage/index.vue
index 0602bf2..e350044 100644
--- a/src/views/wallet/mch-manage/index.vue
+++ b/src/views/wallet/mch-manage/index.vue
@@ -77,23 +77,18 @@
-
-
-
+
+
+
+ 刷新二维码
+
+
配置
-
+
编辑
-
- 删除
-
+ 删除
@@ -110,7 +105,7 @@