diff --git a/src/api/base/manual-task/manualTaskDetailApi.js b/src/api/base/manual-task/manualTaskDetailApi.js
new file mode 100644
index 0000000..9f41fad
--- /dev/null
+++ b/src/api/base/manual-task/manualTaskDetailApi.js
@@ -0,0 +1,28 @@
+import { baseRequest } from '@/utils/request'
+
+const request = (url, ...arg) => baseRequest(`/produce/manualtaskdetail/` + url, ...arg)
+
+/**
+ * 手工任务单详情Api接口管理器
+ *
+ * @author Luck
+ * @date 2024/08/06 17:10
+ **/
+export default {
+ // 获取手工任务单详情分页
+ manualTaskDetailPage(data) {
+ return request('page', data, 'get')
+ },
+ // 提交手工任务单详情表单 edit为true时为编辑,默认为新增
+ manualTaskDetailSubmitForm(data, edit = false) {
+ return request(edit ? 'edit' : 'add', data)
+ },
+ // 删除手工任务单详情
+ manualTaskDetailDelete(data) {
+ return request('delete', data)
+ },
+ // 获取手工任务单详情详情
+ manualTaskDetailDetail(data) {
+ return request('detail', data, 'get')
+ }
+}
diff --git a/src/api/production/produce/produceTagApi.js b/src/api/production/produce/produceTagApi.js
new file mode 100644
index 0000000..1b91db8
--- /dev/null
+++ b/src/api/production/produce/produceTagApi.js
@@ -0,0 +1,32 @@
+import { baseRequest } from '@/utils/request'
+
+const request = (url, ...arg) => baseRequest(`/produce/tag/` + url, ...arg)
+
+/**
+ * 生产标签Api接口管理器
+ *
+ * @author Luck
+ * @date 2024/08/08 20:15
+ **/
+export default {
+ // 获取生产标签分页
+ produceTagPage(data) {
+ return request('page', data, 'get')
+ },
+ // 提交生产标签表单 edit为true时为编辑,默认为新增
+ produceTagSubmitForm(data, edit = false) {
+ return request(edit ? 'edit' : 'add', data)
+ },
+ // 删除生产标签
+ produceTagDelete(data) {
+ return request('delete', data)
+ },
+ // 获取生产标签详情
+ produceTagDetail(data) {
+ return request('detail', data, 'get')
+ },
+ // 获取生产标签详情
+ produceTagList(data) {
+ return request('list', data, 'get')
+ }
+}
diff --git a/src/api/production/produceTask/produceTaskApi.js b/src/api/production/produceTask/produceTaskApi.js
index aa527ba..5dc3f63 100644
--- a/src/api/production/produceTask/produceTaskApi.js
+++ b/src/api/production/produceTask/produceTaskApi.js
@@ -24,5 +24,13 @@ export default {
// 获取生产任务单详情
produceTaskDetail(data) {
return request('detail', data, 'get')
+ },
+ // 审核任务单
+ produceTaskAuditPass(data) {
+ return request('audit/pass', data, 'post')
+ },
+ // 回退任务单
+ produceTaskAudiTask(data) {
+ return request('audit/back', data, 'post')
}
}
diff --git a/src/components/TagModal/index.vue b/src/components/TagModal/index.vue
new file mode 100644
index 0000000..ca2eec0
--- /dev/null
+++ b/src/components/TagModal/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/biz/searchTags/form.vue b/src/views/biz/searchTags/form.vue
new file mode 100644
index 0000000..acd4437
--- /dev/null
+++ b/src/views/biz/searchTags/form.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 关闭
+ 保存
+
+
+
+
+
diff --git a/src/views/biz/searchTags/index.vue b/src/views/biz/searchTags/index.vue
new file mode 100644
index 0000000..227b93f
--- /dev/null
+++ b/src/views/biz/searchTags/index.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/productionBusiness/basicData/materiel/column/materiel-column.js b/src/views/productionBusiness/basicData/materiel/column/materiel-column.js
index 3b90cb5..a4b56f3 100644
--- a/src/views/productionBusiness/basicData/materiel/column/materiel-column.js
+++ b/src/views/productionBusiness/basicData/materiel/column/materiel-column.js
@@ -79,7 +79,6 @@ export const materielColumn = [
resizable: true,
width: 150
},
-
{
title: '创建时间',
dataIndex: 'createTime',
diff --git a/src/views/productionBusiness/employee/personnel/detail/index.vue b/src/views/productionBusiness/employee/personnel/detail/index.vue
index 483bd7e..44390c4 100644
--- a/src/views/productionBusiness/employee/personnel/detail/index.vue
+++ b/src/views/productionBusiness/employee/personnel/detail/index.vue
@@ -51,9 +51,9 @@
const formRules = {
name: [required('请输入名称')],
- type: [required('请输入类型')],
- appid: [required('请输入AppID')],
- secret: [required('请输入AppSecret')]
+ phone: [required('请输入电话号码')],
+ isFit: [required('请输入是否合适')],
+ categoryId: [required('请选择员工分类')]
}
const baseFormItems = reactive([
diff --git a/src/views/productionBusiness/employee/personnel/index.vue b/src/views/productionBusiness/employee/personnel/index.vue
index d9249b1..353942f 100644
--- a/src/views/productionBusiness/employee/personnel/index.vue
+++ b/src/views/productionBusiness/employee/personnel/index.vue
@@ -89,8 +89,13 @@
启用
停用
-
- {{ $TOOL.dictTypeData('OFFICIAL_ACCOUNT_TYPE', record.type) }}
+
+ {{ $TOOL.dictTypeData('YES_NO', record.isJoinGroup || '') }}
+
+
+
+ {{ $TOOL.dictTypeData('FIT_STATE', record.isFit || '') }}
+
@@ -146,9 +151,76 @@
import employeeApi from '@/api/base/employee/employeeApi'
import employeeCategoryApi from '@/api/base/employee/employeeCategoryApi'
import { useTableManagement } from '@/hook/useTableManagement'
- import { materielColumn } from '@/views/productionBusiness/basicData/materiel/column/materiel-column'
import PersonnelCategoryForm from '@/views/productionBusiness/employee/personnel/detail/personnelCategoryForm.vue'
+ const materielColumn = [
+ {
+ title: '编码',
+ dataIndex: 'number',
+ sorter: true,
+ sortDirections: ['descend', 'ascend'],
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ },
+ {
+ title: '姓名',
+ dataIndex: 'name',
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ },
+ {
+ title: '可用状态',
+ dataIndex: 'enabledState',
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ },
+ {
+ title: '是否合适',
+ dataIndex: 'isFit',
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ },
+ {
+ title: '入群',
+ dataIndex: 'isJoinGroup',
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ },
+ {
+ title: '性别',
+ dataIndex: 'gender',
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ },
+ {
+ title: '分类',
+ dataIndex: 'categoryName',
+ align: 'center',
+ resizable: true,
+ width: 150
+ },
+ {
+ title: '电话号码',
+ dataIndex: 'phone',
+ align: 'center',
+ resizable: true,
+ width: 150,
+ ellipsis: true
+ }
+ ]
+
const personnelCategoryFormRef = ref(null)
const dynamicTreeRef = ref(null)
diff --git a/src/views/productionBusiness/employee/personnelReport/detail/index.vue b/src/views/productionBusiness/employee/personnelReport/detail/index.vue
index 04096f1..0c87457 100644
--- a/src/views/productionBusiness/employee/personnelReport/detail/index.vue
+++ b/src/views/productionBusiness/employee/personnelReport/detail/index.vue
@@ -1,7 +1,7 @@
- 保存
+ 保存
@@ -13,7 +13,13 @@
ref="formRef1"
>
-
+
@@ -32,6 +38,9 @@
+
+ {{ index + 1 }}
+
-
+
+
+
+ 删除
@@ -92,7 +104,6 @@
:user-page-api="selectorApiFunction.userPageApi"
:checkedUserListApi="selectorApiFunction.userListByIdListApi"
@onBack="userSelectorOnBack"
- :radioModel="true"
>
@@ -113,6 +124,7 @@
import { required } from '@/utils/formRules'
import { useRoute } from 'vue-router'
import { message } from 'ant-design-vue'
+ import manualTaskDetailApi from "@/api/base/manual-task/manualTaskDetailApi";
const route = useRoute()
@@ -123,7 +135,8 @@
type: 'a-input',
attrs: {
placeholder: '请输入单号',
- allowClear: true
+ allowClear: true,
+ disabled: route.query.type !== 'ADD'
}
},
{
@@ -133,7 +146,8 @@
attrs: {
placeholder: '请输入开工日期',
allowClear: true,
- valueFormat: 'YYYY-MM-DD HH:mm:ss'
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ disabled: route.query.type !== 'ADD'
}
},
{
@@ -143,7 +157,8 @@
isUseSlot: true,
slotName: 'materialNameSlot',
attrs: {
- placeholder: '请输入物料'
+ placeholder: '请输入物料',
+ disabled: route.query.type !== 'ADD'
}
},
{
@@ -152,7 +167,7 @@
type: 'a-input',
attrs: {
disabled: true,
- placeholder: '请输入基本单位'
+ placeholder: '请输入基本单位',
}
},
{
@@ -163,7 +178,7 @@
attrs: {
placeholder: '请选择生产线',
allowClear: true,
- disabled: route.query.type === 'SEARCH'
+ disabled: route.query.type !== 'ADD'
}
},
{
@@ -173,16 +188,16 @@
span: 24,
attrs: {
placeholder: '请输入签名方式',
- allowClear: true
+ allowClear: true,
+ disabled: route.query.type !== 'ADD'
}
}
]
+ const formRef1 = ref(null)
const formRules = {
- name: [required('请输入名称')],
- type: [required('请输入类型')],
- appid: [required('请输入AppID')],
- secret: [required('请输入AppSecret')]
+ materialName: [required('请输入物料')],
+ productionLineName: [required('请输入生产线')]
}
let activeKey = ref('1')
@@ -193,17 +208,40 @@
})
const onSubmitForm = () => {
+ dataSource.value
+ for (let i = 0; i < dataSource.value.length; i++) {
+ if (
+ dataSource.value[i].isFit === null ||
+ dataSource.value[i].money === null ||
+ dataSource.value[i].amount === null ||
+ dataSource.value[i].payMode === null
+ ) {
+ return message.error('请完善人员信息')
+ }
+ }
+
onSubmit({ isDeep: true, ...formData, detailList: dataSource.value })
}
onMounted(async () => {
+ formRefs.value = [formRef1.value]
fetchData(route.query.type).then(async (res) => {
if (res) {
- manualTaskApi.manualTaskDetailPage({
- manualTaskId: res.id
- }).then(detailPage => {
- dataSource.value = detailPage.records
- })
+ formData.materialId = res.materialId // 物料id
+ formData.materialNumber = res.materialNumber // 物料id
+ // 选择物料自动带出基本单位和生产单位
+ formData.baseUnitId = res.baseUnitId // 生产单位id
+
+ // 获取物料的生产价格
+ materielMoney = res.producePrice
+
+ manualTaskDetailApi
+ .manualTaskDetailPage({
+ manualTaskId: res.id
+ })
+ .then((detailPage) => {
+ dataSource.value = detailPage.records
+ })
}
})
})
@@ -264,7 +302,7 @@
})
},
userPageApi: (param) => {
- return employeeApi.employeePage(param).then((data) => {
+ return employeeApi.employeePage({ ...param, enabledState: 'ENABLE' }).then((data) => {
return Promise.resolve(data)
})
},
@@ -279,16 +317,23 @@
const userSelectorOnBack = (data) => {
if (data.length > 0) {
data.forEach((i) => {
- dataSource.value.push({
- employeeId: i.id,
- employeeName: i.name,
- employeeIdNumber: i.idNumber,
- employeeNumber: i.number,
- isFit: i.isFit,
- payMode: null,
- amount: null,
- money: null
- })
+ // 检查是否已经存在相同的 employeeId
+ const exists = dataSource.value.find((item) => item.employeeId === i.id)
+
+ if (!exists) {
+ dataSource.value.push({
+ employeeId: i.id,
+ employeeName: i.name,
+ employeeIdNumber: i.idNumber,
+ employeeNumber: i.number,
+ isFit: i.isFit,
+ payMode: null,
+ amount: null,
+ money: null
+ })
+ } else {
+ message.warning(`员工 ${i.name} 已经存在,未重复添加。`)
+ }
})
}
}
@@ -297,6 +342,12 @@
* 人员列表
* */
const columns = [
+ {
+ title: '序号',
+ dataIndex: 'index',
+ align: 'center',
+ width: 80
+ },
{
title: '员工姓名',
dataIndex: 'employeeName',
@@ -305,19 +356,26 @@
width: 200
},
{
- title: '员工身份证号',
- dataIndex: 'employeeIdNumber',
+ title: '员工手机号',
+ dataIndex: 'employeePhone',
editable: true,
align: 'center',
width: 200
},
{
- title: '员工编号',
- dataIndex: 'employeeNumber',
+ title: '员工性别',
+ dataIndex: 'employeeSex',
editable: true,
align: 'center',
width: 200
},
+ // {
+ // title: '员工编号',
+ // dataIndex: 'employeeNumber',
+ // editable: true,
+ // align: 'center',
+ // width: 200
+ // },
{
title: '是否合适',
dataIndex: 'isFit',
@@ -345,10 +403,31 @@
editable: true,
align: 'center',
width: 200
+ },
+ {
+ title: '操作',
+ dataIndex: 'action',
+ editable: true,
+ align: 'center',
+ width: 100
}
]
const dataSource = ref([])
+ // 表格删除
+ const handleDelete = (record) => {
+ if(route.query.type === 'EDIT') {
+ manualTaskDetailApi.manualTaskDetailDelete({
+ manualTaskId: route.query.id,
+ detailIdParamList: [{id: record.id}]
+ }).then(res => {
+ console.log(res)
+ })
+ }
+
+ dataSource.value = dataSource.value.filter((item) => item.employeeNumber !== record.employeeNumber)
+ }
+
// 计算每个人员的金额
const amountChange = (event, record) => {
record.money = event * materielMoney
@@ -359,9 +438,19 @@
* */
const personnelFormRef = ref(null)
const handleOpenAddUser = () => {
+ if (materielMoney === 0) return message.error('请选择物料,当前生产价格为0')
personnelFormRef.value.onOpen()
}
const successful = (data) => {
+ if(route.query.type === 'EDIT') {
+ // manualTaskDetailApi.manualTaskDetailSubmitForm({
+ // manualTaskId: route.query.id,
+ // detailIdParamList: [{id: record.id}]
+ // }).then(res => {
+ // console.log(res)
+ // })
+ }
+
dataSource.value.push({
employeeId: data.id,
employeeName: data.name,
diff --git a/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue b/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue
index fff5ecd..f901437 100644
--- a/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue
+++ b/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue
@@ -62,6 +62,16 @@
+
+
+
+
+
@@ -82,7 +92,9 @@
const visible = ref(false)
const emit = defineEmits({ successful: null })
const formRef = ref()
- const formData = ref({})
+ const formData = ref({
+ enabledState: 'ENABLE'
+ })
const submitLoading = ref(false)
let pageType = ref('ADD')
@@ -102,7 +114,10 @@
}
// 默认要校验的refresh
const formRules = {
- name: [required('请输入姓名')]
+ name: [required('请输入姓名')],
+ isFit: [required('请选择是否合适')],
+ categoryId: [required('请选择上级员工分类')],
+ phone: [required('请输入手机号码')]
}
// 验证并提交数据
const onSubmit = () => {
diff --git a/src/views/productionBusiness/employee/personnelReport/index.vue b/src/views/productionBusiness/employee/personnelReport/index.vue
index bc6143c..e1ef54f 100644
--- a/src/views/productionBusiness/employee/personnelReport/index.vue
+++ b/src/views/productionBusiness/employee/personnelReport/index.vue
@@ -88,9 +88,8 @@
-
-
-
-
-
-
- <!– 删除–>
-
- -->
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/productionBusiness/productionCenter/report/index.vue b/src/views/productionBusiness/productionCenter/report/index.vue
new file mode 100644
index 0000000..a9be07b
--- /dev/null
+++ b/src/views/productionBusiness/productionCenter/report/index.vue
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/views/productionBusiness/productionCenter/task/detail/index.vue b/src/views/productionBusiness/productionCenter/task/detail/index.vue
index 425aae0..9233ed0 100644
--- a/src/views/productionBusiness/productionCenter/task/detail/index.vue
+++ b/src/views/productionBusiness/productionCenter/task/detail/index.vue
@@ -14,16 +14,38 @@
ref="formRef1"
>
-
+
-
+
-
+
-
+
@@ -45,7 +67,7 @@
/>
-
+
@@ -68,15 +90,17 @@
const route = useRoute()
const formRules = {
- name: [required('请输入名称')],
- type: [required('请输入类型')],
- appid: [required('请输入AppID')],
- secret: [required('请输入AppSecret')]
+ productName: [required('请选择产品')],
+ produceType: [required('请选择生产类型')],
+ producePlanDate: [required('请选择计划开工日期')],
+ producePlanAmount: [required('请选择生产数量')],
+ produceUnitName: [required('请选择生产单位')],
+ baseUnitName: [required('请选择基本单位')],
+ productionLineName: [required('请选择生产线')]
}
const formRef1 = ref(null)
- let detailData = ref({})
- let activeKey = ref('1')
+ let activeKey = ref('2')
let extendData = ref([])
const { formData, formRefs, inform, extendFormData, onSubmit, handleBack, fetchData, getExtendField } =
@@ -89,7 +113,12 @@
formRefs.value = [formRef1.value]
fetchData(route.query.type).then((res) => {
if (res) {
- detailData.value = res
+ formData.productNumber = res.productNumber // 物料名称
+ formData.productId = res.productId // 物料id
+ formData.produceUnitId = res.produceUnitId // 生产单位id
+ formData.baseUnitId = res.baseUnitId // 生产单位id
+ formData.productionLineNumber = res.productionLineNumber
+ formData.productionLineId = res.productionLineId
}
})
@@ -112,6 +141,7 @@
// 物料选择器返回操作
const materielBackOk = (event) => {
formData.productName = event.materielSelectedRows[0].name // 物料名称
+ formData.productNumber = event.materielSelectedRows[0].number // 物料名称
formData.productId = event.materielSelectedRows[0].id // 物料id
// 选择物料自动带出基本单位和生产单位
formData.produceUnitName = event.materielSelectedRows[0].produceUnitName // 生产单位
diff --git a/src/views/productionBusiness/productionCenter/task/formItems/index.js b/src/views/productionBusiness/productionCenter/task/formItems/index.js
index f942d70..ff6c942 100644
--- a/src/views/productionBusiness/productionCenter/task/formItems/index.js
+++ b/src/views/productionBusiness/productionCenter/task/formItems/index.js
@@ -3,8 +3,8 @@ import { required } from '@/utils/formRules'
export const basicInfoFormItems = [
{
- label: '单号:',
- name: 'number',
+ label: '单据号:',
+ name: 'billNumber',
type: 'a-input',
attrs: {
placeholder: '请输入单号',
@@ -43,10 +43,10 @@ export const basicInfoFormItems = [
},
{
label: '批次:',
- name: 'aesKey',
+ name: 'batchNumber',
type: 'a-input',
attrs: {
- placeholder: '请输入签名方式',
+ placeholder: '请输入批次',
allowClear: true
}
},
@@ -55,7 +55,7 @@ export const basicInfoFormItems = [
name: 'producePlanAmount',
type: 'a-input-number',
attrs: {
- placeholder: '请输入签名方式',
+ placeholder: '请输入计划生产数量',
allowClear: true
}
},
@@ -101,11 +101,11 @@ export const basicInfoFormItems = [
},
{
label: '备注:',
- name: 'aesKey',
+ name: 'remarks',
type: 'a-textarea',
span: 24,
attrs: {
- placeholder: '请输入签名方式',
+ placeholder: '请输入备注',
allowClear: true
}
}
diff --git a/src/views/productionBusiness/productionCenter/task/index.vue b/src/views/productionBusiness/productionCenter/task/index.vue
index 22855af..4969025 100644
--- a/src/views/productionBusiness/productionCenter/task/index.vue
+++ b/src/views/productionBusiness/productionCenter/task/index.vue
@@ -57,15 +57,24 @@
:selectedRowKeys="selectedRowKeys"
@batchDelete="deleteBatchRecords"
/>
+
+
+ 审核
+
+
+
+ 反审核
+
{{ record.number }}
-
- 启用
- 停用
+
+ {{
+ $TOOL.dictTypeData('PRODUCE_TASK_STATE', record.state || '')
+ }}
@@ -117,11 +126,14 @@