diff --git a/api/oa/finance/exchangeRate.js b/api/oa/finance/exchangeRate.js new file mode 100644 index 0000000..3deb7e9 --- /dev/null +++ b/api/oa/finance/exchangeRate.js @@ -0,0 +1,10 @@ +// 汇率API,直接请求第三方服务 +import request from "@/util/oaRequest" + +// 获取美元兑人民币汇率(dateStr可选,便于后续扩展) +export async function getExchangeRate(dateStr) { + return request({ + url: '/oa/exchangeRate/usd2cny', + date: dateStr + }) +} \ No newline at end of file diff --git a/api/oa/finance/finance.js b/api/oa/finance/finance.js new file mode 100644 index 0000000..0e48726 --- /dev/null +++ b/api/oa/finance/finance.js @@ -0,0 +1,194 @@ +import request from "@/util/oaRequest" + +// 查询进出账管理列表 +export function listFinance(query) { + return request({ + url: '/oa/finance/list', + method: 'get', + params: query + }) +} +// // 查询进出账管理列表 +// export function barData(query) { +// return request({ +// url: '/oa/finance/barData', +// method: 'get', +// params: query +// }) +// } + +// 查询进项目出账管理列表 +export function listFinancePro(query) { + return request({ + url: '/oa/finance/listPro', + method: 'get', + params: query + }) +} + +// 查询进出账管理详细 +export function getFinance(financeId) { + return request({ + url: '/oa/finance/' + financeId, + method: 'get' + }) +} + +export function getFinancePro(financeId) { + return request({ + url: '/oa/finance/financePro' + financeId, + method: 'get' + }) +} + + +// 根据时间范围查询列表 +export function findFinance(params) { + return request({ + url: '/oa/finance/getFinanceByTime', + method: 'get', + params:params + }) +} + +// 项目资金管理,根据时间范围查询列表 +export function findProjectFinance(query) { + return request({ + url: '/oa/finance/findFinanceByTimeAndProjectId', + method: 'get', + params:query + }) +} + +// 最近6个月核算列表 +export function findFinanceList(query) { + return request({ + url: '/oa/finance/findFinanceByMonth/', + method: 'get', + params:query + }) +} + +// 新增进出账管理 +export function addFinance(data) { + return request({ + url: '/oa/finance', + method: 'post', + data: data + }) +} + +// 修改进出账管理 +export function updateFinance(data) { + return request({ + url: '/oa/finance', + method: 'put', + data: data + }) +} + +// 删除进出账管理 +export function delFinance(financeId) { + return request({ + url: '/oa/finance/' + financeId, + method: 'delete' + }) +} + +/** + * + * @returns 获取进出账管理列表 + */ +export function getCostDetailList(query) { + return request({ + url: '/oa/cost/list', + method: 'get', + params:query + }) +} + +/** + * @param costId 进出账管理id + * @returns 根据id获取进出账管理详情 + * */ +export function getCostDetailById(costId) { + return request({ + url: `/oa/cost/${costId}`, + method: 'get' + }) +} + +/** + * + * @param {*} data 创建成本详情 + * @returns + */ +export function createCostDetail(data) { + return request({ + url: '/oa/cost/add', + method: 'post', + data: data + }) +} + +/** + * + * @param {*} costId 删除成本详情 + * @returns + */ +export function deleteCostDetail(costId) { + return request({ + url: `/oa/cost/${costId}`, + method: 'delete' + }) +} + +/** + * 获取月度收支对比数据 + * @param {{ projectId?: number, financeType?: string }} params + */ +export function barData(params) { + return request({ + url: '/oa/finance/barData', + method: 'get', + params + }); +} + +/** + * 获取明细列表(含币种区分) + * @param {{ projectId?: number, financeType?: string }} params + */ +export function findFinanceList2(params) { + return request({ + url: '/oa/finance/findFinanceList', + method: 'get', + params + }); +} + +// 新增进出账管理withBalance +export function addFinanceWithBalance(data) { + return request({ + url: '/oa/finance/addBalance', + method: 'post', + data: data + }) +} + +// 修改进出账管理withBalance +export function updateFinanceWithBalance(data) { + return request({ + url: '/oa/finance/editBalance', + method: 'put', + data: data + }) +} + +// 删除进出账管理withBalance +export function delFinanceWithBalance(financeId) { + return request({ + url: '/oa/finance/removeDataBalance/' + financeId, + method: 'delete' + }) +} diff --git a/api/oa/post.js b/api/oa/post.js new file mode 100644 index 0000000..1a8e9ca --- /dev/null +++ b/api/oa/post.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询岗位列表 +export function listPost(query) { + return request({ + url: '/system/post/list', + method: 'get', + params: query + }) +} + +// 查询岗位详细 +export function getPost(postId) { + return request({ + url: '/system/post/' + postId, + method: 'get' + }) +} + +// 新增岗位 +export function addPost(data) { + return request({ + url: '/system/post', + method: 'post', + data: data + }) +} + +// 修改岗位 +export function updatePost(data) { + return request({ + url: '/system/post', + method: 'put', + data: data + }) +} + +// 删除岗位 +export function delPost(postId) { + return request({ + url: '/system/post/' + postId, + method: 'delete' + }) +} diff --git a/api/oa/role.js b/api/oa/role.js new file mode 100644 index 0000000..441c527 --- /dev/null +++ b/api/oa/role.js @@ -0,0 +1,127 @@ +import request from "@/utils/request"; + +// 查询角色列表 +export function listRole(query) { + return request({ + url: "/system/role/list", + method: "get", + params: query, + }); +} + +// 查询角色详细 +export function getRole(roleId) { + return request({ + url: "/system/role/" + roleId, + method: "get", + }); +} + +// 查询角色详细 +export function currentRole() { + return request({ + url: "/system/role/currentRole", + method: "get", + }); +} + +// 新增角色 +export function addRole(data) { + return request({ + url: "/system/role", + method: "post", + data: data, + }); +} + +// 修改角色 +export function updateRole(data) { + return request({ + url: "/system/role", + method: "put", + data: data, + }); +} + +// 角色数据权限 +export function dataScope(data) { + return request({ + url: "/system/role/dataScope", + method: "put", + data: data, + }); +} + +// 角色状态修改 +export function changeRoleStatus(roleId, status) { + const data = { + roleId, + status, + }; + return request({ + url: "/system/role/changeStatus", + method: "put", + data: data, + }); +} + +// 删除角色 +export function delRole(roleId) { + return request({ + url: "/system/role/" + roleId, + method: "delete", + }); +} + +// 查询角色已授权用户列表 +export function allocatedUserList(query) { + return request({ + url: "/system/role/authUser/allocatedList", + method: "get", + params: query, + }); +} + +// 查询角色未授权用户列表 +export function unallocatedUserList(query) { + return request({ + url: "/system/role/authUser/unallocatedList", + method: "get", + params: query, + }); +} + +// 取消用户授权角色 +export function authUserCancel(data) { + return request({ + url: "/system/role/authUser/cancel", + method: "put", + data: data, + }); +} + +// 批量取消用户授权角色 +export function authUserCancelAll(data) { + return request({ + url: "/system/role/authUser/cancelAll", + method: "put", + params: data, + }); +} + +// 授权用户选择 +export function authUserSelectAll(data) { + return request({ + url: "/system/role/authUser/selectAll", + method: "put", + params: data, + }); +} + +// 根据角色ID查询部门树结构 +export function deptTreeSelect(roleId) { + return request({ + url: "/system/role/deptTree/" + roleId, + method: "get", + }); +} diff --git a/api/oa/workflow/category.js b/api/oa/workflow/category.js new file mode 100644 index 0000000..ffe46b5 --- /dev/null +++ b/api/oa/workflow/category.js @@ -0,0 +1,53 @@ +import request from "@/util/oaRequest" + +// 查询流程分类列表 +export function listCategory(query) { + return request({ + url: '/workflow/category/list', + method: 'get', + params: query + }) +} + +// 查询流程分类列表 +export function listAllCategory(query) { + return request({ + url: '/workflow/category/listAll', + method: 'get', + params: query + }) +} + +// 查询流程分类详细 +export function getCategory(categoryId) { + return request({ + url: '/workflow/category/' + categoryId, + method: 'get' + }) +} + +// 新增流程分类 +export function addCategory(data) { + return request({ + url: '/workflow/category', + method: 'post', + data: data + }) +} + +// 修改流程分类 +export function updateCategory(data) { + return request({ + url: '/workflow/category', + method: 'put', + data: data + }) +} + +// 删除流程分类 +export function delCategory(categoryId) { + return request({ + url: '/workflow/category/' + categoryId, + method: 'delete' + }) +} diff --git a/api/oa/workflow/deploy.js b/api/oa/workflow/deploy.js new file mode 100644 index 0000000..8062f57 --- /dev/null +++ b/api/oa/workflow/deploy.js @@ -0,0 +1,51 @@ +import request from "@/util/oaRequest" + +// 查询流程部署列表 +export function listDeploy(query) { + return request({ + url: '/workflow/deploy/list', + method: 'get', + params: query + }) +} + +export function listPublish(query) { + return request({ + url: '/workflow/deploy/publishList', + method: 'get', + params: query + }) +} + +// 获取流程模型流程图 +export function getBpmnXml(definitionId) { + return request({ + url: '/workflow/deploy/bpmnXml/' + definitionId, + method: 'get' + }) +} + +// 修改流程状态 +export function changeState(params) { + return request({ + url: '/workflow/deploy/changeState', + method: 'put', + params: params + }) +} + +// 删除流程部署 +export function delDeploy(deployIds) { + return request({ + url: '/workflow/deploy/' + deployIds, + method: 'delete' + }) +} + +// 查询流程部署关联表单信息 +export function getFormByDeployId(deployId) { + return request({ + url: '/workflow/deploy/form/' + deployId, + method: 'get', + }) +} diff --git a/api/oa/workflow/finished.js b/api/oa/workflow/finished.js new file mode 100644 index 0000000..5b43dfa --- /dev/null +++ b/api/oa/workflow/finished.js @@ -0,0 +1,10 @@ +import request from "@/util/oaRequest" + +// 撤回任务 +export function revokeProcess(data) { + return request({ + url: '/workflow/task/revokeProcess', + method: 'post', + data: data + }) +} diff --git a/api/oa/workflow/form.js b/api/oa/workflow/form.js new file mode 100644 index 0000000..27acdad --- /dev/null +++ b/api/oa/workflow/form.js @@ -0,0 +1,52 @@ +import request from "@/util/oaRequest" + +// 查询流程表单列表 +export function listForm(query) { + return request({ + url: '/workflow/form/list', + method: 'get', + params: query + }) +} + +// 查询流程表单详细 +export function getForm(formId) { + return request({ + url: '/workflow/form/' + formId, + method: 'get' + }) +} + +// 新增流程表单 +export function addForm(data) { + return request({ + url: '/workflow/form', + method: 'post', + data: data + }) +} + +// 修改流程表单 +export function updateForm(data) { + return request({ + url: '/workflow/form', + method: 'put', + data: data + }) +} +// 挂载表单 +export function addDeployForm(data) { + return request({ + url: '/workflow/form/addDeployForm', + method: 'post', + data: data + }) +} + +// 删除流程表单 +export function delForm(formId) { + return request({ + url: '/workflow/form/' + formId, + method: 'delete' + }) +} diff --git a/api/oa/workflow/instance.js b/api/oa/workflow/instance.js new file mode 100644 index 0000000..ffff3d4 --- /dev/null +++ b/api/oa/workflow/instance.js @@ -0,0 +1,10 @@ +import request from "@/util/oaRequest" + +// 查询流程实例详情信息 +export function getDetailInstance(query) { + return request({ + url: '/workflow/instance/detail', + method: 'get', + params: query + }) +} diff --git a/api/oa/workflow/model.js b/api/oa/workflow/model.js new file mode 100644 index 0000000..58897c4 --- /dev/null +++ b/api/oa/workflow/model.js @@ -0,0 +1,84 @@ +import request from "@/util/oaRequest" + +// 查询流程模型信息 +export function listModel(query) { + return request({ + url: '/workflow/model/list', + method: 'get', + params: query + }) +} + +// 查询流程模型信息 +export function historyModel(query) { + return request({ + url: '/workflow/model/historyList', + method: 'get', + params: query + }) +} + +export function getModel(modelId) { + return request({ + url: '/workflow/model/' + modelId, + method: 'get' + }) +} + +// 新增模型信息 +export function addModel(data) { + return request({ + url: '/workflow/model', + method: 'post', + data: data + }) +} + +// 修改模型信息 +export function updateModel(data) { + return request({ + url: '/workflow/model', + method: 'put', + data: data + }) +} + +// 保存流程模型 +export function saveModel(data) { + return request({ + url: '/workflow/model/save', + method: 'post', + data: data + }) +} + +export function latestModel(params) { + return request({ + url: '/workflow/model/latest', + method: 'post', + params: params + }) +} + +export function delModel(modelIds) { + return request({ + url: '/workflow/model/' + modelIds, + method: 'delete' + }) +} + +export function deployModel(params) { + return request({ + url: '/workflow/model/deploy', + method: 'post', + params: params + }) +} + +// 获取流程模型流程图 +export function getBpmnXml(modelId) { + return request({ + url: '/workflow/model/bpmnXml/' + modelId, + method: 'get' + }) +} diff --git a/api/oa/workflow/process.js b/api/oa/workflow/process.js new file mode 100644 index 0000000..39601df --- /dev/null +++ b/api/oa/workflow/process.js @@ -0,0 +1,132 @@ +import request from "@/util/oaRequest" + +// 查询流程列表 +export function listProcess(query) { + return request({ + url: '/workflow/process/list', + method: 'get', + params: query + }) +} + +// 查询流程列表 +export function getProcessForm(query) { + return request({ + url: '/workflow/process/getProcessForm', + method: 'get', + params: query + }) +} + +// 部署流程实例 +export function startProcess(processDefId, data) { + return request({ + url: '/workflow/process/start/' + processDefId, + method: 'post', + data: data + }) +} + +// 部署流程实例 +export function startClaim(data) { + return request({ + url: '/workflow/process/startClaim', + method: 'post', + data: data + }) +} +// 部署流程实例 +export function startMoney(data) { + return request({ + url: '/workflow/process/startMoney', + method: 'post', + data: data + }) +} + +// 删除流程实例 +export function delProcess(ids) { + return request({ + url: '/workflow/process/instance/' + ids, + method: 'delete' + }) +} + +// 获取流程图 +export function getBpmnXml(processDefId) { + return request({ + url: '/workflow/process/bpmnXml/' + processDefId, + method: 'get' + }) +} + +export function detailProcess(query) { + return request({ + url: '/workflow/process/detail', + method: 'get', + params: query + }) +} + +// 我的发起的流程 +export function listOwnProcess(query) { + return request({ + url: '/workflow/process/ownList', + method: 'get', + params: query + }) +} + +// 我的发起的流程 +export function listTripAndAbsence(query) { + return request({ + url: '/workflow/process/trip-absence', + method: 'get', + params: query + }) +} + +// 我待办的流程 +export function listTodoProcess(query) { + return request({ + url: '/workflow/process/todoList', + method: 'get', + params: query + }) +} + +// 我待签的流程 +export function listClaimProcess(query) { + return request({ + url: '/workflow/process/claimList', + method: 'get', + params: query + }) +} + +// 我已办的流程 +export function listFinishedProcess(query) { + return request({ + url: '/workflow/process/finishedList', + method: 'get', + params: query + }) +} + +// 查询流程抄送列表 +export function listCopyProcess(query) { + return request({ + url: '/workflow/process/copyList', + method: 'get', + params: query + }) +} + +// 取消申请 +export function stopProcess(data) { + return request({ + url: '/workflow/task/stopProcess', + method: 'post', + data: data + }) +} diff --git a/api/oa/workflow/task.js b/api/oa/workflow/task.js new file mode 100644 index 0000000..b069fa0 --- /dev/null +++ b/api/oa/workflow/task.js @@ -0,0 +1,71 @@ +import request from "@/util/oaRequest" + +// 完成任务 +export function complete(data) { + return request({ + url: '/workflow/task/complete', + method: 'post', + data: data + }) +} + +// 委派任务 +export function delegate(data) { + return request({ + url: '/workflow/task/delegate', + method: 'post', + data: data + }) +} + +// 转办任务 +export function transfer(data) { + return request({ + url: '/workflow/task/transfer', + method: 'post', + data: data + }) +} + +// 退回任务 +export function returnTask(data) { + return request({ + url: '/workflow/task/return', + method: 'post', + data: data + }) +} + +// 拒绝任务 +export function rejectTask(data) { + return request({ + url: '/workflow/task/reject', + method: 'post', + data: data + }) +} + +// 签收任务 +export function claimTask(data) { + return request({ + url: '/workflow/task/claim', + method: 'post', + data: data + }) +} + +// 可退回任务列表 +export function returnList(data) { + return request({ + url: '/workflow/task/returnList', + method: 'post', + data: data + }) +} + +export function getTaskFormDetail(taskId) { + return request({ + url: '/workflow/task/processVariables/'+taskId, + method: 'get', + }) +} diff --git a/components/MyAvatar/index.vue b/components/MyAvatar/index.vue index 1884f01..27cc4cf 100644 --- a/components/MyAvatar/index.vue +++ b/components/MyAvatar/index.vue @@ -66,15 +66,12 @@ export default { }, methods: { getFixedSourceUrl(url) { - console.log('替换头像', url) // 如果 url 以 http://49.232.154.205/api/object/ 开头,则替换为带端口的 if (typeof url === 'string' && url.startsWith('http://49.232.154.205/api/object/')) { - console.log('替换1') return url.replace('http://49.232.154.205/api/object/', 'http://49.232.154.205:10006/api/object/'); } else if (typeof url === 'string' && url.startsWith('http://47.117.71.33/api/object/')) { - console.log("替换2") return url.replace('http://47.117.71.33/api/object/', 'http://49.232.154.205:10006/api/object/'); } diff --git a/components/oa/oa-schema-form/index.vue b/components/oa/oa-schema-form/index.vue new file mode 100644 index 0000000..4c8e764 --- /dev/null +++ b/components/oa/oa-schema-form/index.vue @@ -0,0 +1,91 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 90403b5..df04f9a 100644 --- a/pages.json +++ b/pages.json @@ -429,6 +429,70 @@ "navigationBarTitleText" : "出库记录", "navigationStyle": "default" } + }, + { + "path" : "pages/workbench/process/process", + "style" : + { + "navigationBarTitleText" : "流程管理", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/workflow/apply/apply", + "style" : + { + "navigationBarTitleText" : "我的申请", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/workflow/todo/todo", + "style" : + { + "navigationBarTitleText" : "代办任务", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/workflow/finished/finished", + "style" : + { + "navigationBarTitleText" : "已办任务", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/workflow/detail/detail", + "style" : + { + "navigationBarTitleText" : "流程详情", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/workflow/start/start", + "style" : + { + "navigationBarTitleText" : "发起流程", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/user/user", + "style" : + { + "navigationBarTitleText" : "用户管理", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/cost/cost", + "style" : + { + "navigationBarTitleText" : "项目成本", + "navigationStyle": "default" + } } ], "tabBar": { diff --git a/pages/workbench/cost/components/Bar.vue b/pages/workbench/cost/components/Bar.vue new file mode 100644 index 0000000..077277d --- /dev/null +++ b/pages/workbench/cost/components/Bar.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/pages/workbench/cost/components/Line.vue b/pages/workbench/cost/components/Line.vue new file mode 100644 index 0000000..9d5ea1a --- /dev/null +++ b/pages/workbench/cost/components/Line.vue @@ -0,0 +1,102 @@ + + + + + \ No newline at end of file diff --git a/pages/workbench/cost/components/Pie.vue b/pages/workbench/cost/components/Pie.vue new file mode 100644 index 0000000..0c5c490 --- /dev/null +++ b/pages/workbench/cost/components/Pie.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/pages/workbench/cost/components/RecentRecords.vue b/pages/workbench/cost/components/RecentRecords.vue new file mode 100644 index 0000000..112fb0a --- /dev/null +++ b/pages/workbench/cost/components/RecentRecords.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/pages/workbench/cost/components/SummaryCards.vue b/pages/workbench/cost/components/SummaryCards.vue new file mode 100644 index 0000000..e19e0a6 --- /dev/null +++ b/pages/workbench/cost/components/SummaryCards.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/pages/workbench/cost/cost.vue b/pages/workbench/cost/cost.vue new file mode 100644 index 0000000..768178a --- /dev/null +++ b/pages/workbench/cost/cost.vue @@ -0,0 +1,289 @@ + + + + + \ No newline at end of file diff --git a/pages/workbench/index/index.vue b/pages/workbench/index/index.vue index 18666f1..17c43ae 100644 --- a/pages/workbench/index/index.vue +++ b/pages/workbench/index/index.vue @@ -109,6 +109,12 @@ export default { category: '财务中心', access: ['vice', 'baomi', 'ceo'] // 需要特定权限才能访问 }, + // { + // text: '项目成本', + // icon: '/static/images/cost.png', + // url: '/pages/workbench/cost/cost', + // category: '财务中心', + // }, { text: '智慧库房', icon: '/static/images/smartStock.png', @@ -133,11 +139,35 @@ export default { url: '/pages/workbench/wms/out', category: '库房管理', }, + // { + // text: '我的申请', + // icon: '/static/images/apply.png', + // url: '/pages/workbench/workflow/apply/apply', + // category: '办公流程' + // }, + // { + // text: '代办任务', + // icon: '/static/images/todo.png', + // url: '/pages/workbench/workflow/todo/todo', + // category: '办公流程' + // }, + // { + // text: '已办任务', + // icon: '/static/images/finished.png', + // url: '/pages/workbench/workflow/finished/finished', + // category: '办公流程' + // }, { text: '线上营销', icon: '/static/images/yingxiao.png', url: '/pages/workbench/sales/sales', }, + { + text: "用户管理", + icon: '/static/images/user.png', + url: '/pages/workbench/user/user', + // access: ['vice', 'ceo'] + } ], }; }, diff --git a/pages/workbench/process/process.vue b/pages/workbench/process/process.vue new file mode 100644 index 0000000..8183fd0 --- /dev/null +++ b/pages/workbench/process/process.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/pages/workbench/user/user.vue b/pages/workbench/user/user.vue new file mode 100644 index 0000000..bc39a28 --- /dev/null +++ b/pages/workbench/user/user.vue @@ -0,0 +1,664 @@ + + + + + \ No newline at end of file diff --git a/pages/workbench/wms/out.vue b/pages/workbench/wms/out.vue index 133fa64..ba56251 100644 --- a/pages/workbench/wms/out.vue +++ b/pages/workbench/wms/out.vue @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/pages/workbench/workflow/apply/apply.vue b/pages/workbench/workflow/apply/apply.vue new file mode 100644 index 0000000..84cd17f --- /dev/null +++ b/pages/workbench/workflow/apply/apply.vue @@ -0,0 +1,563 @@ + + + + + diff --git a/pages/workbench/workflow/detail/detail.vue b/pages/workbench/workflow/detail/detail.vue new file mode 100644 index 0000000..8183fd0 --- /dev/null +++ b/pages/workbench/workflow/detail/detail.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/pages/workbench/workflow/finished/finished.vue b/pages/workbench/workflow/finished/finished.vue new file mode 100644 index 0000000..8183fd0 --- /dev/null +++ b/pages/workbench/workflow/finished/finished.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/pages/workbench/workflow/start/start.vue b/pages/workbench/workflow/start/start.vue new file mode 100644 index 0000000..f980020 --- /dev/null +++ b/pages/workbench/workflow/start/start.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/pages/workbench/workflow/todo/todo.vue b/pages/workbench/workflow/todo/todo.vue new file mode 100644 index 0000000..8183fd0 --- /dev/null +++ b/pages/workbench/workflow/todo/todo.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/static/images/apply.png b/static/images/apply.png new file mode 100644 index 0000000..3838d74 Binary files /dev/null and b/static/images/apply.png differ diff --git a/static/images/cost.png b/static/images/cost.png new file mode 100644 index 0000000..ea3b832 Binary files /dev/null and b/static/images/cost.png differ diff --git a/static/images/finished.png b/static/images/finished.png new file mode 100644 index 0000000..3eac692 Binary files /dev/null and b/static/images/finished.png differ diff --git a/static/images/todo.png b/static/images/todo.png new file mode 100644 index 0000000..4b433b7 Binary files /dev/null and b/static/images/todo.png differ diff --git a/static/images/user.png b/static/images/user.png new file mode 100644 index 0000000..b9724b1 Binary files /dev/null and b/static/images/user.png differ diff --git a/store/modules/conversation.js b/store/modules/conversation.js index baa8e31..05394b6 100644 --- a/store/modules/conversation.js +++ b/store/modules/conversation.js @@ -65,7 +65,7 @@ const actions = { return []; } }, - getCurrentGroup({ commit }, groupID) { + getCurrentGroup({ commit }, groupID) { IMSDK.asyncApi(IMSDK.IMMethods.GetSpecifiedGroupsInfo, uuidv4(), [ groupID, ]).then(({ data }) => { diff --git a/uni_modules/uni-data-select/changelog.md b/uni_modules/uni-data-select/changelog.md index 0658510..1681eae 100644 --- a/uni_modules/uni-data-select/changelog.md +++ b/uni_modules/uni-data-select/changelog.md @@ -1,3 +1,11 @@ +## 1.1.0(2025-08-19) +- 新增 插槽 selected empty option +- 新增 mutiple 属性,支持多选功能 +- 新增 wrap 属性,支持选中的文字超过一行显示 +- 新增 align 属性,支持修改选中的文字显示的位置 +- 新增 hideRight 属性,支持隐藏右侧所有按钮 +- 新增 mode 属性,支持修改边框样式 +- 新增 事件 open close clear ## 1.0.10(2025-04-14) - 修复 清除按钮不展示问题 ## 1.0.9(2025-03-26) diff --git a/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue index 71ee950..85b2d7b 100644 --- a/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue +++ b/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue @@ -2,30 +2,59 @@ {{label + ':'}} - - - {{textShow}} - {{typePlaceholder}} - + + + + + + + - + - - - - - {{emptyTips}} - - - {{formatItemName(item)}} - - - + + + + + + + + + @@ -36,22 +65,56 @@ * DataChecklist 数据选择器 * @description 通过数据渲染的下拉框组件 * @tutorial https://uniapp.dcloud.io/component/uniui/uni-data-select - * @property {String} value 默认值 + * @property {String|Array} value 默认值,多选时为数组 * @property {Array} localdata 本地数据 ,格式 [{text:'',value:''}] * @property {Boolean} clear 是否可以清空已选项 * @property {Boolean} emptyText 没有数据时显示的文字 ,本地数据无效 * @property {String} label 左侧标题 * @property {String} placeholder 输入框的提示文字 * @property {Boolean} disabled 是否禁用 + * @property {Boolean} multiple 是否多选模式 + * @property {Boolean} wrap 是否允许选中文本换行显示 * @property {String} placement 弹出位置 * @value top 顶部弹出 * @value bottom 底部弹出(default) + * @property {String} align 选择文字的位置 + * @value left 显示左侧 + * @value center 显示中间 + * @value right 显示 右侧 + * @property {Boolean} hideRight 是否隐藏右侧按钮 + * @property {String} mode 边框样式 + * @value default 四周边框 + * @value underline 下边框 + * @value none 无边框 * @event {Function} change 选中发生变化触发 + * @event {Function} open 选择框开启时触发 + * @event {Function} close 选择框关闭时触发 + * @event {Function} clear 点击清除按钮之后触发 */ export default { name: "uni-data-select", mixins: [uniCloud.mixinDatacom || {}], + emits: [ + 'open', + 'close', + 'update:modelValue', + 'input', + 'clear', + 'change' + ], + model: { + prop: 'modelValue', + event: 'update:modelValue' + }, + options: { + // #ifdef MP-TOUTIAO + virtualHost: false, + // #endif + // #ifndef MP-TOUTIAO + virtualHost: true + // #endif + }, props: { localdata: { type: Array, @@ -60,11 +123,11 @@ } }, value: { - type: [String, Number], + type: [String, Number, Array], default: '' }, modelValue: { - type: [String, Number], + type: [String, Number, Array], default: '' }, label: { @@ -99,7 +162,27 @@ placement: { type: String, default: 'bottom' - } + }, + multiple: { + type: Boolean, + default: false + }, + wrap: { + type: Boolean, + default: false + }, + align:{ + type: String, + default: "left" + }, + hideRight: { + type: Boolean, + default: false + }, + mode:{ + type: String, + default: 'default' + } }, data() { return { @@ -133,17 +216,35 @@ common }, valueCom() { - // #ifdef VUE3 - return this.modelValue; - // #endif - // #ifndef VUE3 - return this.value; - // #endif + if (this.value === '') return this.modelValue + if (this.modelValue === '') return this.value + return this.value }, textShow() { // 长文本显示 - let text = this.current; - return text; + if (this.multiple) { + const currentValues = this.getCurrentValues(); + if (Array.isArray(currentValues) && currentValues.length > 0) { + const selectedItems = this.mixinDatacomResData.filter(item => currentValues.includes(item.value)); + return selectedItems.map(item => this.formatItemName(item)).join(', '); + } else { + return ''; // 空数组时返回空字符串,显示占位符 + } + } else { + return this.current; + } + }, + shouldShowClear() { + if (this.multiple) { + const currentValues = this.getCurrentValues(); + return Array.isArray(currentValues) && currentValues.length > 0; + } else { + return !!this.current; + } + }, + shouldWrap() { + // 只有在多选模式、开启换行、且有内容时才应用换行样式 + return this.multiple && this.wrap && !!this.textShow; }, getOffsetByPlacement() { switch (this.placement) { @@ -152,10 +253,38 @@ case 'bottom': return "top:calc(100% + 12px);"; } + }, + slotSelected(){ + // #ifdef VUE2 + return this.$scopedSlots ? this.$scopedSlots.selected : false + // #endif + // #ifdef VUE3 + return this.$slots ? this.$slots.selected : false + // #endif + }, + slotEmpty(){ + // #ifdef VUE2 + return this.$scopedSlots ? this.$scopedSlots.empty : false + // #endif + // #ifdef VUE3 + return this.$slots ? this.$slots.empty : false + // #endif + }, + slotOption(){ + // #ifdef VUE2 + return this.$scopedSlots ? this.$scopedSlots.option : false + // #endif + // #ifdef VUE3 + return this.$slots ? this.$slots.option : false + // #endif } }, - watch: { + showSelector:{ + handler(val,old){ + val ? this.$emit('open') : this.$emit('close') + } + }, localdata: { immediate: true, handler(val, old) { @@ -175,9 +304,20 @@ } } }, - }, methods: { + getSelectedItems() { + const currentValues = this.getCurrentValues(); + let _minxData = this.mixinDatacomResData + // #ifdef MP-WEIXIN || MP-TOUTIAO + _minxData = JSON.parse(JSON.stringify(this.mixinDatacomResData)) + // #endif + if (this.multiple) { + return _minxData.filter(item => currentValues.includes(item.value)) || []; + } else { + return _minxData.filter(item => item.value === currentValues) || []; + } + }, debounce(fn, time = 100) { let timer = null return function(...args) { @@ -187,6 +327,23 @@ }, time) } }, + // 检查项目是否已选中 + isSelected(item) { + if (this.multiple) { + const currentValues = this.getCurrentValues(); + return Array.isArray(currentValues) && currentValues.includes(item.value); + } else { + return this.getCurrentValues() === item.value; + } + }, + // 获取当前选中的值 + getCurrentValues() { + if (this.multiple) { + return Array.isArray(this.valueCom) ? this.valueCom : (this.valueCom ? [this.valueCom] : []); + } else { + return this.valueCom; + } + }, // 执行数据库查询 query() { this.mixinDatacomEasyGet(); @@ -198,7 +355,7 @@ } }, initDefVal() { - let defValue = '' + let defValue = this.multiple ? [] : '' if ((this.valueCom || this.valueCom === 0) && !this.isDisabled(this.valueCom)) { defValue = this.valueCom } else { @@ -209,48 +366,105 @@ if (strogeValue || strogeValue === 0) { defValue = strogeValue } else { - let defItem = '' + let defItem = this.multiple ? [] : '' if (this.defItem > 0 && this.defItem <= this.mixinDatacomResData.length) { - defItem = this.mixinDatacomResData[this.defItem - 1].value + defItem = this.multiple ? [this.mixinDatacomResData[this.defItem - 1].value] : this.mixinDatacomResData[this.defItem - 1].value } defValue = defItem } - if (defValue || defValue === 0) { + if (defValue || defValue === 0 || (this.multiple && Array.isArray(defValue) && defValue.length > 0)) { this.emit(defValue) } } - const def = this.mixinDatacomResData.find(item => item.value === defValue) - this.current = def ? this.formatItemName(def) : '' + + if (this.multiple) { + const selectedValues = Array.isArray(defValue) ? defValue : (defValue ? [defValue] : []); + const selectedItems = this.mixinDatacomResData.filter(item => selectedValues.includes(item.value)); + this.current = selectedItems.map(item => this.formatItemName(item)); + } else { + const def = this.mixinDatacomResData.find(item => item.value === defValue) + this.current = def ? this.formatItemName(def) : '' + } }, /** - * @param {[String, Number]} value + * @param {[String, Number, Array]} value * 判断用户给的 value 是否同时为禁用状态 */ isDisabled(value) { - let isDisabled = false; - - this.mixinDatacomResData.forEach(item => { - if (item.value === value) { - isDisabled = item.disable - } - }) - - return isDisabled; + if (Array.isArray(value)) { + // 对于数组,如果任意一个值被禁用,则认为整体被禁用 + return value.some(val => { + return this.mixinDatacomResData.some(item => item.value === val && item.disable); + }); + } else { + let isDisabled = false; + this.mixinDatacomResData.forEach(item => { + if (item.value === value) { + isDisabled = item.disable + } + }) + return isDisabled; + } }, - clearVal() { - this.emit('') - this.current = '' + const emptyValue = this.multiple ? [] : ''; + this.emit(emptyValue) + this.current = this.multiple ? [] : '' if (this.collection) { this.removeCache() } + this.$emit('clear') + }, + checkBoxChange(res){ + let range = res.detail.value + + let currentValues = range && range.length > 0? range.map((item)=>{ + const index = parseInt(item, 10); + + if (isNaN(index)) { + console.error(`无效索引: ${item}`); + } + + if (index < 0 || index >= this.mixinDatacomResData.length) { + console.error(`索引越界: ${index}`); + } + + return this.mixinDatacomResData[index].value; + }) : [] + const selectedItems = this.mixinDatacomResData.filter(dataItem => currentValues.includes(dataItem.value)); + this.current = selectedItems.map(dataItem => this.formatItemName(dataItem)); + + this.emit(currentValues); }, change(item) { if (!item.disable) { - this.showSelector = false - this.current = this.formatItemName(item) - this.emit(item.value) + if (this.multiple) { + // 多选模式 + let currentValues = this.getCurrentValues(); + if (!Array.isArray(currentValues)) { + currentValues = currentValues ? [currentValues] : []; + } + + const itemValue = item.value; + const index = currentValues.indexOf(itemValue); + + if (index > -1) { + currentValues.splice(index, 1); + } else { + currentValues.push(itemValue); + } + + const selectedItems = this.mixinDatacomResData.filter(dataItem => currentValues.includes(dataItem.value)); + this.current = selectedItems.map(dataItem => this.formatItemName(dataItem)); + + this.emit(currentValues); + } else { + // 单选模式 + this.showSelector = false + this.current = this.formatItemName(item) + this.emit(item.value) + } } }, emit(val) { @@ -328,6 +542,11 @@ $uni-main-color: #333 !default; $uni-secondary-color: #909399 !default; $uni-border-3: #e5e5e5; + $uni-primary: #2979ff !default; + $uni-success: #4cd964 !default; + $uni-warning: #f0ad4e !default; + $uni-error: #dd524d !default; + $uni-info: #909399 !default; /* #ifndef APP-NVUE */ @media screen and (max-width: 500px) { @@ -369,9 +588,16 @@ margin-right: 5px; } + .border-bottom { + border-bottom: solid 1px $uni-border-3; + } + + .border-default { + border: 1px solid $uni-border-3; + } + .uni-select { font-size: 14px; - border: 1px solid $uni-border-3; box-sizing: border-box; border-radius: 4px; padding: 0 5px; @@ -383,15 +609,20 @@ /* #endif */ flex-direction: row; align-items: center; - border-bottom: solid 1px $uni-border-3; width: 100%; flex: 1; - height: 35px; + min-height: 35px; &--disabled { background-color: #f5f7fa; cursor: not-allowed; } + + &--wrap { + height: auto; + min-height: 35px; + // align-items: flex-start; + } } .uni-select__label { @@ -403,7 +634,7 @@ } .uni-select__input-box { - height: 35px; + // height: 35px; width: 0px; position: relative; /* #ifndef APP-NVUE */ @@ -412,6 +643,24 @@ flex: 1; flex-direction: row; align-items: center; + + &--wrap { + .uni-select__input-text { + margin-right: 8px; + } + } + + .padding-top-bottom { + padding-top: 5px; + padding-bottom: 5px; + } + + .slot-content { + width: 100%; + display: flex; + flex-direction: row; + flex-wrap: wrap; + } } .uni-select__input { @@ -463,15 +712,18 @@ display: flex; cursor: pointer; /* #endif */ + flex-direction: row; + align-items: center; line-height: 35px; font-size: 14px; - text-align: center; /* border-bottom: solid 1px $uni-border-3; */ padding: 0px 10px; } - .uni-select__selector-item:hover { - background-color: #f9f9f9; + + + .uni-select__selector-item-check { + margin-left: auto; } .uni-select__selector-empty:last-child, @@ -490,15 +742,14 @@ .uni-popper__arrow_bottom, .uni-popper__arrow_bottom::after, .uni-popper__arrow_top, - .uni-popper__arrow_top::after, - { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - border-width: 6px; + .uni-popper__arrow_top::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 6px; } .uni-popper__arrow_bottom { @@ -544,11 +795,22 @@ text-overflow: ellipsis; -o-text-overflow: ellipsis; overflow: hidden; + + &--wrap { + white-space: normal; + text-overflow: initial; + -o-text-overflow: initial; + overflow: visible; + word-wrap: break-word; + word-break: break-all; + // line-height: 1.5; + } } .uni-select__input-placeholder { color: $uni-base-color; font-size: 12px; + margin: 1px 0; } .uni-select--mask { @@ -559,4 +821,17 @@ left: 0; z-index: 2; } + + .align-left { + text-align: left; + } + + .align-center { + text-align: center; + } + + .align-right { + text-align: right; + } + diff --git a/uni_modules/uni-data-select/package.json b/uni_modules/uni-data-select/package.json index d21cc2d..4033502 100644 --- a/uni_modules/uni-data-select/package.json +++ b/uni_modules/uni-data-select/package.json @@ -1,7 +1,7 @@ { "id": "uni-data-select", "displayName": "uni-data-select 下拉框选择器", - "version": "1.0.10", + "version": "1.1.0", "description": "通过数据驱动的下拉框选择器", "keywords": [ "uni-ui", @@ -12,12 +12,14 @@ ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "^3.1.1" + "HBuilderX": "^3.1.1", + "uni-app": "^4.45", + "uni-app-x": "" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -35,54 +37,70 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "x", + "i18n": "x", + "widescreen": "x" }, "uni_modules": { - "dependencies": ["uni-load-more"], + "dependencies": [ + "uni-load-more" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "√" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "n", - "app-harmony": "u", - "app-uvue": "u" + "uni-app": { + "vue": { + "vue2": "√", + "vue3": "√" + }, + "web": { + "safari": "√", + "chrome": "√" + }, + "app": { + "vue": "√", + "nvue": "-", + "android": "√", + "ios": "√", + "harmony": "√" + }, + "mp": { + "weixin": "√", + "alipay": "√", + "toutiao": "√", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "u", - "百度": "u", - "字节跳动": "u", - "QQ": "u", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-fab/changelog.md b/uni_modules/uni-fab/changelog.md new file mode 100644 index 0000000..8a22807 --- /dev/null +++ b/uni_modules/uni-fab/changelog.md @@ -0,0 +1,25 @@ +## 1.2.6(2024-10-12) +- 修复 微信小程序中的getSystemInfo警告 +## 1.2.5(2023-03-29) +- 新增 pattern.icon 属性,可自定义图标 +## 1.2.4(2022-09-07) +小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false) +## 1.2.3(2022-09-05) +- 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310) +## 1.2.2(2021-12-29) +- 更新 组件依赖 +## 1.2.1(2021-11-19) +- 修复 阴影颜色不正确的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 按钮背景色调整 +- 优化 兼容pc端 diff --git a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue new file mode 100644 index 0000000..492b5d1 --- /dev/null +++ b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue @@ -0,0 +1,491 @@ + + + + + diff --git a/uni_modules/uni-fab/package.json b/uni_modules/uni-fab/package.json new file mode 100644 index 0000000..1b8543c --- /dev/null +++ b/uni_modules/uni-fab/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-fab", + "displayName": "uni-fab 悬浮按钮", + "version": "1.2.6", + "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", + "keywords": [ + "uni-ui", + "uniui", + "按钮", + "悬浮按钮", + "fab" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-fab/readme.md b/uni_modules/uni-fab/readme.md new file mode 100644 index 0000000..9a444e8 --- /dev/null +++ b/uni_modules/uni-fab/readme.md @@ -0,0 +1,9 @@ +## Fab 悬浮按钮 +> **组件名:uni-fab** +> 代码块: `uFab` + + +点击可展开一个图形按钮菜单 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md index 0cc65a0..62e7682 100644 --- a/uni_modules/uni-icons/changelog.md +++ b/uni_modules/uni-icons/changelog.md @@ -1,3 +1,5 @@ +## 2.0.12(2025-08-26) +- 优化 uni-app x 下 size 类型问题 ## 2.0.11(2025-08-18) - 修复 图标点击事件返回 ## 2.0.9(2024-01-12) diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue b/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue index 398678e..53eb2ea 100644 --- a/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue @@ -29,8 +29,8 @@ default: '#333333' }, size: { - type: Object, - default: 16 + type: [Number, String], + default: 16 }, fontFamily: { type: String, @@ -51,9 +51,9 @@ iconSize() : string { const size = this.size if (typeof size == 'string') { - const reg = /^[0-9]*$/g - return reg.test(size as string) ? '' + size + 'px' : '' + size; - // return '' + this.size + const reg = /^[0-9]*$/g + return reg.test(size as string) ? '' + size + 'px' : '' + size; + // return '' + this.size } return this.getFontSize(size as number) }, diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json index 9a9052f..60e45f0 100644 --- a/uni_modules/uni-icons/package.json +++ b/uni_modules/uni-icons/package.json @@ -1,7 +1,7 @@ { "id": "uni-icons", "displayName": "uni-icons 图标", - "version": "2.0.11", + "version": "2.0.12", "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", "keywords": [ "uni-ui", @@ -64,7 +64,7 @@ }, "app": { "vue": "√", - "nvue": "√", + "nvue": "-", "android": { "extVersion": "", "minVersion": "29" diff --git a/version.md b/version.md index 1649f28..1fe8729 100644 --- a/version.md +++ b/version.md @@ -27,4 +27,10 @@ ## 4.7.1 + 修改路径替换规则 -+ 修改更新地址 \ No newline at end of file ++ 修改更新地址 + +## 4.7.2 ++ 项目选择器增加搜索 + +## 4.7.3 ++ 修复出库记录的显示错误 \ No newline at end of file