diff --git a/src/api/base/employee/employeeApi.js b/src/api/base/employee/employeeApi.js index ffe13cc..081aa8f 100644 --- a/src/api/base/employee/employeeApi.js +++ b/src/api/base/employee/employeeApi.js @@ -24,5 +24,9 @@ export default { // 获取员工详情 employeeDetail(data) { return request('detail', data, 'get') + }, + // 添加员工基本信息 + employeeAddShort(data) { + return request('addShort', data, 'post') } } diff --git a/src/api/base/manual-task/manualTaskApi.js b/src/api/base/manual-task/manualTaskApi.js new file mode 100644 index 0000000..b802668 --- /dev/null +++ b/src/api/base/manual-task/manualTaskApi.js @@ -0,0 +1,36 @@ +import { baseRequest } from '@/utils/request' + +const request = (url, ...arg) => baseRequest(`/produce/manualtask/` + url, ...arg) + +/** + * 手工任务单Api接口管理器 + * + * @author Luck + * @date 2024/08/06 16:54 + **/ +export default { + // 获取手工任务单分页 + manualTaskPage(data) { + return request('page', data, 'get') + }, + // 获取手工任务单【详情】分页 + manualTaskDetailPage(data) { + return request('/detail/page', data, 'get') + }, + // 提交手工任务单表单 edit为true时为编辑,默认为新增 + manualTaskSubmitForm(data, edit = false) { + return request(edit ? 'edit' : 'add', data) + }, + // 提交 保存任务单 标签、备注信息 + manualTaskSaveTag(data) { + return request('saveTag', data) + }, + // 删除手工任务单 + manualTaskDelete(data) { + return request('delete', data) + }, + // 获取手工任务单详情 + manualTaskDetail(data) { + return request('detail', data, 'get') + } +} diff --git a/src/api/base/manual-task/manualTaskTagApi.js b/src/api/base/manual-task/manualTaskTagApi.js new file mode 100644 index 0000000..f849350 --- /dev/null +++ b/src/api/base/manual-task/manualTaskTagApi.js @@ -0,0 +1,32 @@ +import { baseRequest } from '@/utils/request' + +const request = (url, ...arg) => baseRequest(`/produce/manualtasktag/` + url, ...arg) + +/** + * 手工任务单标签Api接口管理器 + * + * @author Luck + * @date 2024/08/06 18:28 + **/ +export default { + // 获取手工任务单标签分页 + manualTaskTagPage(data) { + return request('page', data, 'get') + }, + // 获取手工任务单标签 列表 + manualTaskTagList(data) { + return request('list', data, 'get') + }, + // 提交手工任务单标签表单 edit为true时为编辑,默认为新增 + manualTaskTagSubmitForm(data, edit = false) { + return request(edit ? 'edit' : 'add', data) + }, + // 删除手工任务单标签 + manualTaskTagDelete(data) { + return request('delete', data) + }, + // 获取手工任务单标签详情 + manualTaskTagDetail(data) { + return request('detail', data, 'get') + } +} diff --git a/src/api/production/produceTask/produceTaskApi.js b/src/api/production/produceTask/produceTaskApi.js new file mode 100644 index 0000000..aa527ba --- /dev/null +++ b/src/api/production/produceTask/produceTaskApi.js @@ -0,0 +1,28 @@ +import { baseRequest } from '@/utils/request' + +const request = (url, ...arg) => baseRequest(`/produce/task/` + url, ...arg) + +/** + * 生产任务单Api接口管理器 + * + * @author Luck + * @date 2024/08/06 10:39 + **/ +export default { + // 获取生产任务单分页 + produceTaskPage(data) { + return request('page', data, 'get') + }, + // 提交生产任务单表单 edit为true时为编辑,默认为新增 + produceTaskSubmitForm(data, edit = false) { + return request(edit ? 'edit' : 'add', data) + }, + // 删除生产任务单 + produceTaskDelete(data) { + return request('delete', data) + }, + // 获取生产任务单详情 + produceTaskDetail(data) { + return request('detail', data, 'get') + } +} diff --git a/src/components/Selector/employeeSelectorPlus.vue b/src/components/Selector/employeeSelectorPlus.vue new file mode 100644 index 0000000..0c1767d --- /dev/null +++ b/src/components/Selector/employeeSelectorPlus.vue @@ -0,0 +1,401 @@ + + + + + diff --git a/src/components/Selector/lineSelectorPlus.vue b/src/components/Selector/lineSelectorPlus.vue new file mode 100644 index 0000000..1b37a47 --- /dev/null +++ b/src/components/Selector/lineSelectorPlus.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/src/components/Selector/materielSelectorPlus.vue b/src/components/Selector/materielSelectorPlus.vue new file mode 100644 index 0000000..6779134 --- /dev/null +++ b/src/components/Selector/materielSelectorPlus.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/components/Table/index.vue b/src/components/Table/index.vue index 631fdbf..001fd15 100644 --- a/src/components/Table/index.vue +++ b/src/components/Table/index.vue @@ -121,8 +121,8 @@ typeof props.alert === 'boolean' && props.alert ? clearSelected() : props.alert.clear && typeof props.alert.clear === 'function' - ? props.alert.clear() - : null + ? props.alert.clear() + : null ) " > @@ -167,7 +167,7 @@ import { get } from 'lodash-es' const slots = useSlots() const route = useRoute() - const emit = defineEmits(['expand', 'plusRowData', 'editRowData', 'deleteRowData']) + const emit = defineEmits(['expand', 'plusRowData', 'editRowData', 'deleteRowData', 'refresh']) const renderSlots = Object.keys(slots) const props = defineProps( @@ -347,6 +347,7 @@ )) loadData() getTableProps() + emit('refresh') } // 斑马纹勾选 const changeRowClass = (v) => { diff --git a/src/hook/useFormHandler.js b/src/hook/useFormHandler.js index b5d4966..c1eda01 100644 --- a/src/hook/useFormHandler.js +++ b/src/hook/useFormHandler.js @@ -7,9 +7,10 @@ import extendFieldApi from '@/api/base/extendfield/extendFieldApi' * 使用表单处理程序封装表单的提交、初始化和回退逻辑。 * @param {Array} formItems 表单项配置,包含表单字段名、默认值等信息。 * @param {Object} api 包含表单提交和获取详情方法的对象。 + * @param backRouter * @returns {Object} 返回包含表单数据、提交加载状态、表单引用、提交函数等的对象。 */ -export default function useFormHandler(formItems, api) { +export default function useFormHandler(formItems, api, backRouter) { // 初始化页面类型状态 const state = reactive({ PAGE_TYPE: '' @@ -68,7 +69,7 @@ export default function useFormHandler(formItems, api) { // 调用api提交表单数据 await api.submitForm(formDataParam, safeId) // 提交成功后返回上一页,并关闭当前标签页 - handleBack() + handleBack(backRouter) } catch (error) { console.error('Validation error:', error) } finally { @@ -92,9 +93,9 @@ export default function useFormHandler(formItems, api) { /** * 处理返回操作,返回上一级页面并关闭当前标签页。 */ - const handleBack = () => { + const handleBack = (routerPath) => { // useTabs.close(route) - router.push('/basicData/publicAccount') // 优化为通用的返回上一页操作 + useTabs.close('', routerPath) } /** @@ -148,24 +149,26 @@ export default function useFormHandler(formItems, api) { if (resExtendField) { resExtendField.forEach((item) => { - const showValues = JSON.parse(item.showValues) - let options = [] - showValues.forEach((value) => { - options.push({ - value: value.name, - label: value.name + if (item.showValues) { + const showValues = JSON.parse(item.showValues) + let options = [] + showValues.forEach((value) => { + options.push({ + value: value.name, + label: value.name + }) }) - }) - extendData.push({ - label: item.name, - name: item.fieldName, - type: item.showType, - span: 6, - attrs: { - placeholder: '请输入内容', - options - } - }) + extendData.push({ + label: item.name, + name: item.fieldName, + type: item.showType, + span: 6, + attrs: { + placeholder: '请输入内容', + options + } + }) + } }) extendData.forEach((item) => { diff --git a/src/hook/useTableManagement.js b/src/hook/useTableManagement.js index 3631f3f..521f599 100644 --- a/src/hook/useTableManagement.js +++ b/src/hook/useTableManagement.js @@ -7,10 +7,11 @@ import useTabs from '@/utils/useTabs' * 列表页面表格信息 hook 封装(数据操作) * @param apiModule 调用接口 * @param tableColumns 表格头部信息 - * @param hasPermData + * @param hasPermData 权限控制 + * @param isShowAction 是否在列首添加列 * @returns {{searchFormRef: Ref>, toolConfig: {columnSetting: boolean, striped: boolean, refresh: boolean, height: boolean}, searchFormState: Ref>, tableRef: Ref>, selectedRowKeys: Ref>, columns: Ref>, options: {rowSelection: {onChange: options.rowSelection.onChange}, alert: {show: boolean, clear: options.alert.clear}}, reset: reset, loadData: (function(*): *), deleteBatchRecords: deleteBatchRecords, deleteRecord: deleteRecord}} */ -export function useTableManagement(apiModule = {}, tableColumns, hasPermData) { +export function useTableManagement(apiModule = {}, tableColumns, hasPermData, isShowAction = true) { const searchFormState = ref({}) const searchFormRef = ref(null) const selectedRowKeys = ref([]) @@ -43,7 +44,7 @@ export function useTableManagement(apiModule = {}, tableColumns, hasPermData) { if (hasPerm(hasPermData)) { // 判断columns 是否有操作 const columnsFilter = columns.value.filter((item) => item.dataIndex === 'action') - if (columnsFilter.length === 0) + if (columnsFilter.length === 0 && isShowAction) columns.value.unshift({ title: '操作', dataIndex: 'action', diff --git a/src/layout/components/tags.vue b/src/layout/components/tags.vue index 16abe77..162f791 100644 --- a/src/layout/components/tags.vue +++ b/src/layout/components/tags.vue @@ -319,7 +319,9 @@ background: none; height: 40px; line-height: 40px; - transition: background-color 0.3s, color 0.3s; + transition: + background-color 0.3s, + color 0.3s; padding: 0 16px; border-radius: 0; border: none; @@ -440,7 +442,9 @@ position: relative; z-index: 1; border-radius: 10px 10px 0 0 !important; - box-shadow: 12px 15px 0 0 var(--primary-1), -12px 15px 0 0 var(--primary-1); + box-shadow: + 12px 15px 0 0 var(--primary-1), + -12px 15px 0 0 var(--primary-1); } .snowy-radius .ant-tabs-tab-active::before { content: ''; diff --git a/src/store/viewTags.js b/src/store/viewTags.js index 5f5b32e..b0862cc 100644 --- a/src/store/viewTags.js +++ b/src/store/viewTags.js @@ -18,7 +18,7 @@ export const viewTagsStore = defineStore('viewTags', () => { const pushViewTags = (route) => { const target = viewTags.value.find((item) => item.path === route.path) const isName = route.name - if (!target) { + if (!target && isName) { viewTags.value.push(route) } if (target) { diff --git a/src/utils/useTabs.js b/src/utils/useTabs.js index f23bd47..5b8a926 100644 --- a/src/utils/useTabs.js +++ b/src/utils/useTabs.js @@ -36,7 +36,6 @@ export default { keepAliveStore().removeKeepLive(route.name) const tagList = store.viewTags const latestView = tagList.slice(-1)[0] - console.log(latestView, 'route') if (latestView) { router.push(latestView) } else { diff --git a/src/views/productionBusiness/basicData/brand/index.vue b/src/views/productionBusiness/basicData/brand/index.vue index b490fb6..6847ca4 100644 --- a/src/views/productionBusiness/basicData/brand/index.vue +++ b/src/views/productionBusiness/basicData/brand/index.vue @@ -40,8 +40,7 @@ :tool-config="options.toolConfig" :row-selection="options.rowSelection" :scroll="{ - x: 100, - + x: 100 }" >