2025-03-24 17:21:44 +08:00
|
|
|
import { ref, onMounted, reactive } from 'vue';
|
|
|
|
import inputSuppliesApis from '@/apis/inputSuppliesApi';
|
|
|
|
const { getMaterailTypes } = inputSuppliesApis;
|
|
|
|
export function useBasicInfo(set = {}) {
|
|
|
|
const loadFinish = ref(false);
|
|
|
|
const searchCondition = Object.assign(
|
2025-03-17 17:32:59 +08:00
|
|
|
{
|
2025-03-24 17:21:44 +08:00
|
|
|
dataType: '',
|
|
|
|
moduleType: '',
|
2025-03-17 17:32:59 +08:00
|
|
|
},
|
2025-03-24 17:21:44 +08:00
|
|
|
set
|
|
|
|
);
|
|
|
|
/* ------ data ------ */
|
|
|
|
// #region
|
|
|
|
const materialTypes = reactive({
|
|
|
|
1: [{ value: '0', label: '全部' }],
|
|
|
|
2: [{ value: '0', label: '全部' }],
|
|
|
|
3: [{ value: '0', label: '全部' }],
|
|
|
|
4: [{ value: '0', label: '全部' }],
|
|
|
|
5: [{ value: '0', label: '全部' }],
|
|
|
|
});
|
|
|
|
const materialTwoLevel = ref({});
|
|
|
|
|
|
|
|
/* ------ 农药 ------ */
|
|
|
|
// #region
|
|
|
|
const pesticideTypes = reactive({});
|
|
|
|
const goodsUnitOptions = reactive([
|
|
|
|
{ value: '1', label: 'ml/瓶' },
|
|
|
|
{ value: '2', label: 'mg/盒' },
|
|
|
|
{ value: '3', label: 'kg/袋' },
|
|
|
|
]);
|
|
|
|
const useDosageUnit = reactive([
|
|
|
|
{ value: '1', label: '/亩' },
|
|
|
|
{ value: '2', label: '/平方米' },
|
|
|
|
{ value: '3', label: '/株' },
|
2025-03-17 17:32:59 +08:00
|
|
|
]);
|
2025-03-24 17:21:44 +08:00
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// #endregion
|
|
|
|
async function getmaterialType(_set = {}) {
|
|
|
|
let params = Object.assign(searchCondition, _set);
|
|
|
|
let res = await getMaterailTypes(params);
|
|
|
|
console.log('two --- ', res);
|
|
|
|
if (res && res?.code == 200) {
|
|
|
|
res.data.forEach((item) => {
|
|
|
|
const { moduleType, children } = item;
|
|
|
|
materialTypes[moduleType].push(...handleTypes(children));
|
|
|
|
handleTwoLevel();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
loadFinish.value = true;
|
|
|
|
}
|
|
|
|
function handleTypes(arr) {
|
|
|
|
arr.forEach((item) => {
|
|
|
|
item.value = item.id;
|
|
|
|
item.label = item.dataName;
|
|
|
|
if (item.children.length > 0) {
|
|
|
|
item.children = handleTypes(item.children);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return arr;
|
|
|
|
}
|
|
|
|
function handleTwoLevel() {
|
|
|
|
for (let key in materialTypes) {
|
|
|
|
materialTwoLevel.value[key] = {};
|
|
|
|
materialTypes[key].forEach((v) => {
|
|
|
|
if (v.value != 0) {
|
|
|
|
materialTwoLevel.value[key][v.dataType] = v.children;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function filterTypes(_set = {}) {
|
|
|
|
let filterType = Object.assign(
|
|
|
|
{
|
|
|
|
dataType: '1',
|
|
|
|
moduleType: '1',
|
|
|
|
},
|
|
|
|
_set
|
|
|
|
);
|
|
|
|
let all = materialTypes[filterType.moduleType];
|
|
|
|
let _arr = [];
|
|
|
|
all.forEach((item) => {
|
|
|
|
console.log('item', item);
|
|
|
|
if (filterType.dataType == item.dataType) {
|
|
|
|
_arr = item.children;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return _arr;
|
|
|
|
}
|
|
|
|
|
|
|
|
onMounted(getmaterialType);
|
|
|
|
|
2025-03-17 17:32:59 +08:00
|
|
|
return {
|
2025-03-24 17:21:44 +08:00
|
|
|
loadFinish,
|
|
|
|
materialTypes,
|
|
|
|
materialTwoLevel,
|
|
|
|
goodsUnitOptions,
|
|
|
|
useDosageUnit,
|
|
|
|
getmaterialType,
|
|
|
|
filterTypes,
|
2025-03-17 17:32:59 +08:00
|
|
|
};
|
|
|
|
}
|