diff --git a/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js b/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js index 5cc8c3c..6099fc1 100644 --- a/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js +++ b/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js @@ -2,7 +2,7 @@ import request from '@/utils/axios'; /* 种子种苗需求-列表 */ export function getSeedDemandRecords(params) { - return request('/inputGoods/supervise/provenance/page', { + return request('/inputGoods/demand/provenance/page', { params, }); } diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue index b6a9a1a..0b942bd 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue @@ -7,7 +7,7 @@
- + +
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + +
+
+
+ +
+ + + + + diff --git a/sub-government-affairs-service/src/views/trace/planting/seedling/use/index.vue b/sub-government-affairs-service/src/views/trace/planting/seedling/use/index.vue index b9cdb79..b3d0c42 100644 --- a/sub-government-affairs-service/src/views/trace/planting/seedling/use/index.vue +++ b/sub-government-affairs-service/src/views/trace/planting/seedling/use/index.vue @@ -1,9 +1,479 @@ +import { ref, reactive, computed, onMounted, onBeforeUnmount, nextTick } from 'vue'; +import tableComponent from '@/components/tableComponent.vue'; +import LandSelect from '@/components/LandSelect.vue'; +import { ElMessage } from 'element-plus'; +import inputSuppliesApi from '@/apis/inputSuppliesApi'; +const { getMaterailTypes } = inputSuppliesApi; +import { + getSeedUseRegulatoryRecords, + seedUseRegulatorySave, + editSeedUseRegulatory, + delSeedUseRegulatory, + getLandList, +} from '@/apis/inputSuppliesApi/supervisionOfInputs'; +import request from '@/utils/axios'; +import { GetDictTypeInfo } from '@/apis/system/dictType'; +import { useApp } from '@/hooks'; +const app = useApp(); - +// 查询条件 +const formInline = reactive({ + name: '', + seedTypeId: '', + current: 1, + size: 10, +}); +const searchForm = ref(null); +const onSubmit = () => { + formInline.current = 1; + loadData(); +}; +const resetForm = () => { + searchForm.value.resetFields(); +}; + +// 表格数据 +const tableData = ref([]); +const selectedIds = ref([]); +const tableLoading = ref(false); +const tableTotal = ref(0); +const columns = ref([ + { prop: 'landName', label: '地块名称' }, + { prop: 'regionCode', label: '所属行政区划' }, + { prop: 'gridName', label: '所属网格' }, + { prop: 'name', label: '姓名' }, + { prop: 'phone', label: '联系方式' }, + { prop: 'provenanceId', label: '种子编号' }, + { prop: 'provenanceName', label: '种子种苗名称' }, + { prop: 'useNumber', label: '使用量' }, + { prop: 'useTime', label: '使用时间' }, + { prop: 'action', label: '操作', slotName: 'action', width: 100, fixed: 'right' }, +]); +const handlePaginationChange = ({ page, pageSize }) => { + formInline.current = page; + formInline.size = pageSize; + loadData(); +}; +const loadData = async () => { + tableLoading.value = true; + try { + let response = await getSeedUseRegulatoryRecords(formInline); + tableLoading.value = false; + if (response.code == 200) { + tableData.value = response.data.records; + tableTotal.value = response.data.total; + } + } catch (error) { + tableLoading.value = false; + console.error(error); + } +}; + +const extractThirdLevelChildren = (dataArray) => { + let result = []; + // 遍历第一层数组 + for (const level1 of dataArray) { + // 检查第一层是否有children且是数组 + if (level1.children && Array.isArray(level1.children)) { + // 遍历第二层数组 + for (const level2 of level1.children) { + // 检查第二层是否有children且是数组 + if (level2.children && Array.isArray(level2.children)) { + // 将第三层的所有对象添加到结果数组中 + result.push(...level2.children); + } + } + } + } + return result; +}; +const seedTypeChange = () => { + console.log(formInline.seedTypeId); + // 重新获取表格数据,需添加参数 +}; + +const dialogFormVisible = ref(false); +const dialogRef = ref(null); +const dialogTitle = ref('新增'); +const formDisabled = ref(false); +const landSelectRef = ref(null); +const nowSelectRow = ref({}); +const dialogForm = reactive({ + regionCode: '', //所属行政区域代码 + regionName: '', //所属行政区域名称 + gridId: '', //所属网格代码 + gridName: '', //所属网格名称 + landId: '', //地块id + landName: '', //地块名称 + name: '', //姓名 + phone: '', //联系方式 + provenanceId: '', //种子种苗名称id + provenanceName: '', //种子种苗名称 + useNumber: 1, //使用量 + useUnit: 'g', //使用量单位 + detectionTime: '', //使用时间 + businessEntityCode: '', //经营主体编码 + businessEntityName: '', //经营主体名称 +}); +const dialogFormRules = ref({ + provenanceId: [{ required: true, message: '请输入种子种苗编号', trigger: 'blur' }], + provenanceName: [{ required: true, message: '请输入种子种苗名称', trigger: 'blur' }], + useNumber: [{ required: true, message: '请输入使用量', trigger: ['change', 'blur'] }], + detectionTime: [{ required: true, message: '请选择使用时间', trigger: 'blur' }], +}); +const addItem = async () => { + // ElMessage.success('点击新增!'); + restDialogForm(); + dialogTitle.value = '新增'; + formDisabled.value = false; + dialogFormVisible.value = true; +}; +const seeDetails = async (row) => { + // ElMessage.success('查看详情!'); + dialogTitle.value = '详情'; + console.log(row); + formDisabled.value = true; + dialogForm.landId = row.landId; + getDetails(); + dialogForm.provenanceId = row.provenanceId; + dialogForm.provenanceName = row.provenanceName; + dialogForm.useNumber = row.useNumber; + dialogForm.useUnit = row.useUnit; + dialogForm.detectionTime = row.useTime; + dialogFormVisible.value = true; +}; +const handleEdit = (row) => { + // ElMessage.success('点击编辑!'); + nowSelectRow.value = row; + dialogTitle.value = '编辑'; + console.log(row); + formDisabled.value = false; + dialogForm.landId = row.landId; + getDetails(); + dialogForm.provenanceId = row.provenanceId; + dialogForm.provenanceName = row.provenanceName; + dialogForm.useNumber = row.useNumber; + dialogForm.useUnit = row.useUnit; + dialogForm.detectionTime = row.useTime; + dialogFormVisible.value = true; +}; +// 获取地块信息 +const getDetails = async () => { + let response = await request({ + url: `/land-resource/landManage/getLandInfo?landId=${dialogForm.landId}`, + }); + console.log(response); + if (response.code == 200) { + if (response.data) { + setDialogForm(response.data); + } else { + ElMessage.error('未查询到数据'); + } + } else { + ElMessage.error(response.message); + } +}; +const setDialogForm = (row) => { + dialogForm.regionCode = row.gridAreaCode; + dialogForm.regionName = row.fullRegionName; + dialogForm.gridId = row.gridId; + dialogForm.gridName = row.gridName; + dialogForm.landId = row.id; + dialogForm.landName = row.landName; + dialogForm.name = row.propertyName; + dialogForm.phone = row.propertyPhone; + dialogForm.businessEntityCode = row.businessEntityCode ?? ''; + dialogForm.businessEntityName = row.businessEntityName ?? ''; +}; +const handleDelete = (row) => { + console.log('删除操作: ', row); + app + .$confirm(`删除后信息将不可查看,确认要删除吗?`, '确定删除', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + deleteGoods(row.id) + .then((res) => { + if (res.code === 200) { + onSubmit(); + app.$message.success('删除成功!'); + } + }) + .catch((err) => { + app.$message.error(err.msg); + }); + }) + .catch(() => {}); +}; +const deleteGoods = async (ids) => { + try { + let res = await delSeedUseRegulatory(ids); + return res; + } catch (error) { + return false; + } +}; +const onSaveCategory = () => { + console.log(dialogForm); + if (dialogForm.landId == '') { + landSelectRef.value.handleChange(); + return; + } + dialogRef.value.validate(async (valid, fields) => { + if (valid) { + try { + let param = { ...dialogForm }; + param.useTime = dialogForm.detectionTime; + console.log(param); + // valid.businessEntityCode = dialogForm.businessEntityCode; //经营主体编码 + // valid.businessEntityName = dialogForm.businessEntityName; //经营主体名称 + let response; + if (dialogTitle.value == '新增') { + response = await seedUseRegulatorySave(param); + } else { + param.id = nowSelectRow.value.id; + response = await editSeedUseRegulatory(param); + } + if (response.code == 200) { + cancelDialog(); + onSubmit(); + if (dialogTitle.value == '新增') { + ElMessage.success('新增成功!'); + } else { + ElMessage.success('编辑成功!'); + } + } else { + ElMessage.error(response.msg); + } + } catch (error) { + console.error(error); + } + } + }); +}; +const cancelDialog = async () => { + restDialogForm(); + dialogFormVisible.value = false; +}; +const restDialogForm = () => { + Object.assign(dialogForm, { + regionCode: '', //所属行政区域代码 + regionName: '', //所属行政区域名称 + gridId: '', //所属网格代码 + gridName: '', //所属网格名称 + landId: '', //地块id + landName: '', //地块名称 + name: '', //姓名 + phone: '', //联系方式 + provenanceId: '', //种子种苗名称id + provenanceName: '', //种子种苗名称 + useNumber: 1, //使用量 + useUnit: 'g', //使用量单位 + useTime: '', //使用时间 + businessEntityCode: '', //经营主体编码 + businessEntityName: '', //经营主体名称 + }); + nowSelectRow.value = ref({}); +}; + +const seedTypeList = ref([]); +const seedTypeDialogList = ref([]); +const getSeedTypeList = async () => { + try { + let response = await getMaterailTypes({ moduleType: '4' }); + console.log(response); + if (response.code == 200) { + if (response.data?.length > 0) { + seedTypeDialogList.value = response.data[0].children; + let result = extractThirdLevelChildren(response.data); + seedTypeList.value = result; + console.log(seedTypeDialogList.value); + } + } + } catch (error) { + console.error(error); + } +}; + +const unitList = ref([ + { dictCode: '52', dictValue: 'g' }, + { dictCode: '53', dictValue: 'kg' }, +]); + +const landSelectList = ref([]); +const getLandsList = async () => { + let res = await getLandList(); + if (res.code == 200) { + landSelectList.value = res.data; + } +}; +const handleLandChange = (val) => { + console.log(val); + if (val) { + getDetails(); + } else { + restDialogForm(); + } +}; + +const getEntityOptions = async () => { + let res = await GetDictTypeInfo('sys_use_supervise_number'); + console.log(res); + if (res.code == 200) { + unitList.value = res.data; + } else { + unitList.value = [ + { dictCode: '52', dictValue: 'g' }, + { dictCode: '53', dictValue: 'kg' }, + ]; + } +}; + +onMounted(() => { + onSubmit(); + getLandsList(); + getEntityOptions(); + // getSeedTypeList(); +}); + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/Attrs.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/Attrs.vue new file mode 100644 index 0000000..6e8ed76 --- /dev/null +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/Attrs.vue @@ -0,0 +1,137 @@ + + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabBasicInfo.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabBasicInfo.vue new file mode 100644 index 0000000..4af8da8 --- /dev/null +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabBasicInfo.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabBusinessInfo.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabBusinessInfo.vue new file mode 100644 index 0000000..f15bfef --- /dev/null +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabBusinessInfo.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabCreditEvaluation.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabCreditEvaluation.vue new file mode 100644 index 0000000..652a5e5 --- /dev/null +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabCreditEvaluation.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabMember.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabMember.vue new file mode 100644 index 0000000..0cac7f7 --- /dev/null +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabMember.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabRegister.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabRegister.vue new file mode 100644 index 0000000..67d16c5 --- /dev/null +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/components/TabRegister.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/index.vue b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/index.vue index b9cdb79..6f1c0ff 100644 --- a/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/index.vue +++ b/sub-government-affairs-service/src/views/trace/production-subjects/enterprise/index.vue @@ -1,9 +1,631 @@ - +