diff --git a/src/api/common/sheep.js b/src/api/common/sheep.js new file mode 100644 index 0000000..8dcdb81 --- /dev/null +++ b/src/api/common/sheep.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 模糊查询母羊耳号列表 +export function searchEarNumbers(query) { + return request({ + url: '/sheep/sheep/earNumbers', + method: 'get', + params: { query } + }) +} diff --git a/src/api/common/user.js b/src/api/common/user.js new file mode 100644 index 0000000..0ad5564 --- /dev/null +++ b/src/api/common/user.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 根据岗位查询用户信息 +export function getUserByPost(query) { + return request({ + url: '/userPost/getUser', + method: 'get', + params: query + }) +} diff --git a/src/views/biosafety/deworm/index.vue b/src/views/biosafety/deworm/index.vue index bb4d54a..28589db 100644 --- a/src/views/biosafety/deworm/index.vue +++ b/src/views/biosafety/deworm/index.vue @@ -2,16 +2,82 @@
- - + +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+
+ + - - + + + {{ item.label }} + + +
搜索 重置 @@ -104,10 +170,15 @@ - - - - + + + + + {{ item.label }} + + +
@@ -208,10 +279,15 @@ - - - - + + + + + {{ item.label }} + + +
@@ -261,8 +337,6 @@
- - @@ -283,8 +357,10 @@ import { listUnit } from '@/api/biosafety/unit' import { listUsage } from '@/api/biosafety/usage' import { listMedicine } from '@/api/biosafety/medicine' + import { searchEarNumbers } from '@/api/common/sheep' import request from '@/utils/request' import { parseTime } from '@/utils/ruoyi' + import { getUserByPost } from '@/api/common/user' const { proxy } = getCurrentInstance() const { sheep_gender } = proxy.useDict('sheep_gender') @@ -295,16 +371,159 @@ const total = ref(0) const dewormList = ref([]) const daterangeDatetime = ref([]) + const technicalOptions = ref([]) + const queryParams = reactive({ pageNum: 1, pageSize: 20, sheepNo: null, technical: null, + orderByColumn: null, // 新增 isAsc: null // 新增 }) + // 响应式数据 + const pasteInput = ref('') // 批量粘贴输入框 + const earNumberOptions = ref([]) // 耳号下拉选项 + const earNumberLoading = ref(false) // 耳号加载状态 + const isExpanded = ref(false) // 控制耳号展开/折叠状态 + const defaultShowCount = 2 // 默认显示的耳号数量 + + // 计算属性:控制显示的耳号列表 + const displayedEarNumbers = computed(() => { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } + }) + /** 处理粘贴事件 */ + function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) + } + + /** 处理粘贴内容提交 */ + function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' + } + + /** 远程搜索耳号 */ + function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } + } + + /** 耳号选择变化处理 */ + function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) + } + + /** 切换展开/收起状态 */ + function toggleExpand() { + isExpanded.value = !isExpanded.value + } + + /** 移除单个耳号 */ + function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } + } + + /** 清空所有耳号 */ + function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) + } + const ids = ref([]) const single = ref(true) const multiple = ref(true) @@ -528,6 +747,27 @@ function handleAddDetail() { usageDetails.value.push({ mediId: null, dosage: 0, unit: null, usageId: null,manufacturer:null,batchNumber:null }) } + // 获取技术员列表 + const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + + } /* ------------------ 初始化 ------------------ */ onMounted(() => { @@ -546,5 +786,49 @@ listMedicine().then(res => { medicines.value = res.rows.map(item => ({ value: item.id, label: item.name })) }) + fetchTechnicalList() + }) - \ No newline at end of file + + diff --git a/src/views/biosafety/diagnosis/index.vue b/src/views/biosafety/diagnosis/index.vue index 314dc73..0f88687 100644 --- a/src/views/biosafety/diagnosis/index.vue +++ b/src/views/biosafety/diagnosis/index.vue @@ -2,9 +2,72 @@
- + + +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+ +
+ + @@ -210,6 +273,34 @@ import { import { listSheepfold_management } from '@/api/fileManagement/sheepfold_management' import { listDisease } from '@/api/biosafety/disease' import { getCurrentInstance, onMounted, ref, watch } from 'vue' +import { searchEarNumbers } from '@/api/common/sheep' +import { getUserByPost } from '@/api/common/user' + +const technicalOptions = ref([]) //自定义技术员数组变量 + +// 获取技术员列表 +const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + +} + + /* ---------- 基础依赖 ---------- */ const { proxy } = getCurrentInstance() @@ -230,6 +321,7 @@ const queryParams = ref({ pageNum: 1, pageSize: 20, sheepNo: null, + allEarNumbers: null, datetime: null, diseasePid: null, diseaseId: null, @@ -273,6 +365,146 @@ const rules = { ], } +// 响应式数据 +const pasteInput = ref('') // 批量粘贴输入框 +const earNumberOptions = ref([]) // 耳号下拉选项 +const earNumberLoading = ref(false) // 耳号加载状态 +const isExpanded = ref(false) // 控制耳号展开/折叠状态 +const defaultShowCount = 2 // 默认显示的耳号数量 + +// 计算属性:控制显示的耳号列表 +const displayedEarNumbers = computed(() => { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } +}) +/** 处理粘贴事件 */ +function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) +} + +/** 处理粘贴内容提交 */ +function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' +} + +/** 远程搜索耳号 */ +function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } +} + +/** 耳号选择变化处理 */ +function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) +} + +/** 切换展开/收起状态 */ +function toggleExpand() { + isExpanded.value = !isExpanded.value +} + +/** 移除单个耳号 */ +function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } +} + +/** 清空所有耳号 */ +function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) +} + /* ---------- 下拉数据源 ---------- */ const pDiseaseOptions = ref([]) const cDiseaseOptions = ref([]) @@ -449,5 +681,49 @@ onMounted(() => { label: i.sheepfoldName, })) }) + fetchTechnicalList() // 获取技术员列表 }) - \ No newline at end of file + + + diff --git a/src/views/biosafety/disinfect/index.vue b/src/views/biosafety/disinfect/index.vue index 59b4296..389c520 100644 --- a/src/views/biosafety/disinfect/index.vue +++ b/src/views/biosafety/disinfect/index.vue @@ -18,7 +18,14 @@ - + + + + {{ item.label }} + + + @@ -101,7 +108,14 @@ - + + + + {{ item.label }} + + + @@ -199,7 +213,14 @@ - + + + + {{ item.label }} + + + @@ -289,6 +310,33 @@ import { listMedicine } from '@/api/biosafety/medicine' import request from '@/utils/request' import { parseTime } from '@/utils/ruoyi' +import { getUserByPost } from '@/api/common/user' + +const technicalOptions = ref([]) //自定义技术员数组变量 + +// 获取技术员列表 +const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + +} + + const { proxy } = getCurrentInstance() const { disinfect_type } = proxy.useDict('disinfect_type') @@ -538,5 +586,6 @@ onMounted(() => { listMedicine().then(res => { medicines.value = res.rows.map(item => ({ value: item.id, label: item.name })) }) + fetchTechnicalList() // 获取技术员列表 }) \ No newline at end of file diff --git a/src/views/biosafety/health/index.vue b/src/views/biosafety/health/index.vue index 918cc08..6dbdd1d 100644 --- a/src/views/biosafety/health/index.vue +++ b/src/views/biosafety/health/index.vue @@ -2,16 +2,84 @@
- + + +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+ +
+ + - + + + {{ item.label }} + + 搜索 @@ -109,7 +177,14 @@ - + + + + {{ item.label }} + + + @@ -213,7 +288,12 @@ - + + + {{ item.label }} + + @@ -288,6 +368,33 @@ import { listUsage } from '@/api/biosafety/usage' import { listMedicine } from '@/api/biosafety/medicine' import request from '@/utils/request' import { parseTime } from '@/utils/ruoyi' +import { searchEarNumbers } from '@/api/common/sheep' +import { getUserByPost } from '@/api/common/user' + +const technicalOptions = ref([]) //自定义技术员数组变量 + +// 获取技术员列表 +const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + +} + const { proxy } = getCurrentInstance() const { sheep_gender } = proxy.useDict('sheep_gender') @@ -303,11 +410,152 @@ const queryParams = reactive({ pageNum: 1, pageSize: 20, sheepNo: null, + allEarNumbers: [], // 修改:改为数组,支持多耳号 technical: null, orderByColumn: null, // 新增 isAsc: null // 新增 }) +// 响应式数据 +const pasteInput = ref('') // 批量粘贴输入框 +const earNumberOptions = ref([]) // 耳号下拉选项 +const earNumberLoading = ref(false) // 耳号加载状态 +const isExpanded = ref(false) // 控制耳号展开/折叠状态 +const defaultShowCount = 2 // 默认显示的耳号数量 + +// 计算属性:控制显示的耳号列表 +const displayedEarNumbers = computed(() => { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } +}) +/** 处理粘贴事件 */ +function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) +} + +/** 处理粘贴内容提交 */ +function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' +} + +/** 远程搜索耳号 */ +function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } +} + +/** 耳号选择变化处理 */ +function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) +} + +/** 切换展开/收起状态 */ +function toggleExpand() { + isExpanded.value = !isExpanded.value +} + +/** 移除单个耳号 */ +function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } +} + +/** 清空所有耳号 */ +function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) +} + const ids = ref([]) const single = ref(true) const multiple = ref(true) @@ -549,5 +797,48 @@ onMounted(() => { listMedicine().then(res => { medicines.value = res.rows.map(item => ({ value: item.id, label: item.name })) }) + fetchTechnicalList() // 获取技术员列表 }) - \ No newline at end of file + + diff --git a/src/views/biosafety/immunity/index.vue b/src/views/biosafety/immunity/index.vue index a025b19..d8fd619 100644 --- a/src/views/biosafety/immunity/index.vue +++ b/src/views/biosafety/immunity/index.vue @@ -2,15 +2,82 @@
+ +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+ +
+ - + - + + + {{ item.label }} + + 搜索 @@ -107,7 +174,14 @@ - + + + + {{ item.label }} + + + @@ -211,7 +285,12 @@ - + + + {{ item.label }} + + @@ -286,6 +365,32 @@ import { listUsage } from '@/api/biosafety/usage' import { listMedicine } from '@/api/biosafety/medicine' import request from '@/utils/request' import { parseTime } from '@/utils/ruoyi' +import { searchEarNumbers } from '@/api/common/sheep' +import { getUserByPost } from '@/api/common/user' + +const technicalOptions = ref([]) //自定义技术员数组变量 + +// 获取技术员列表 +const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + +} const { proxy } = getCurrentInstance() const { sheep_gender } = proxy.useDict('sheep_gender') @@ -301,11 +406,153 @@ const queryParams = reactive({ pageNum: 1, pageSize: 20, sheepNo: null, + allEarNumbers: [], // 修改:改为数组,支持多耳号 technical: null, orderByColumn: null, // 新增 isAsc: null // 新增 }) +// 响应式数据 +const pasteInput = ref('') // 批量粘贴输入框 +const earNumberOptions = ref([]) // 耳号下拉选项 +const earNumberLoading = ref(false) // 耳号加载状态 +const isExpanded = ref(false) // 控制耳号展开/折叠状态 +const defaultShowCount = 2 // 默认显示的耳号数量 + +// 计算属性:控制显示的耳号列表 +const displayedEarNumbers = computed(() => { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } +}) +/** 处理粘贴事件 */ +function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) +} + +/** 处理粘贴内容提交 */ +function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' +} + +/** 远程搜索耳号 */ +function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } +} + +/** 耳号选择变化处理 */ +function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) +} + +/** 切换展开/收起状态 */ +function toggleExpand() { + isExpanded.value = !isExpanded.value +} + +/** 移除单个耳号 */ +function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } +} + +/** 清空所有耳号 */ +function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) +} + + const ids = ref([]) const single = ref(true) const multiple = ref(true) @@ -547,5 +794,49 @@ onMounted(() => { listMedicine().then(res => { medicines.value = res.rows.map(item => ({ value: item.id, label: item.name })) }) + fetchTechnicalList() // 获取技术员列表 }) - \ No newline at end of file + + + diff --git a/src/views/biosafety/quarantine/index.vue b/src/views/biosafety/quarantine/index.vue index 2d0b0db..ef475ec 100644 --- a/src/views/biosafety/quarantine/index.vue +++ b/src/views/biosafety/quarantine/index.vue @@ -2,9 +2,71 @@
- + +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+ +
+ + @@ -17,11 +79,21 @@ - + + + {{ item.label }} + + - + + + {{ item.label }} + + @@ -163,12 +235,22 @@ - + + + {{ item.label }} + + - + + + {{ item.label }} + + @@ -254,13 +336,23 @@ - + + + {{ item.label }} + + - + + + {{ item.label }} + + @@ -300,6 +392,8 @@ import { listSample } from '@/api/biosafety/sample' import request from '@/utils/request' import { parseTime } from '@/utils/ruoyi' import { useRouter } from 'vue-router' +import { searchEarNumbers } from '@/api/common/sheep' +import { getUserByPost } from '@/api/common/user' const { proxy } = getCurrentInstance() const { quar_result, quar_status, sheep_gender } = proxy.useDict( @@ -309,6 +403,33 @@ const { quar_result, quar_status, sheep_gender } = proxy.useDict( ) const router = useRouter() + + +const technicalOptions = ref([]) //自定义技术员数组变量 + +// 获取技术员列表 +const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + +} + + /* 基础数据 */ const loading = ref(true) const showSearch = ref(true) @@ -321,10 +442,152 @@ const queryParams = reactive({ pageNum: 1, pageSize: 20, sheepId: null, + allEarNumbers: [], // 修改:改为数组,支持多耳号 orderByColumn: null, // 新增 isAsc: null // 新增 }) + +// 响应式数据 +const pasteInput = ref('') // 批量粘贴输入框 +const earNumberOptions = ref([]) // 耳号下拉选项 +const earNumberLoading = ref(false) // 耳号加载状态 +const isExpanded = ref(false) // 控制耳号展开/折叠状态 +const defaultShowCount = 2 // 默认显示的耳号数量 + +// 计算属性:控制显示的耳号列表 +const displayedEarNumbers = computed(() => { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } +}) +/** 处理粘贴事件 */ +function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) +} + +/** 处理粘贴内容提交 */ +function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' +} + +/** 远程搜索耳号 */ +function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } +} + +/** 耳号选择变化处理 */ +function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) +} + +/** 切换展开/收起状态 */ +function toggleExpand() { + isExpanded.value = !isExpanded.value +} + +/** 移除单个耳号 */ +function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } +} + +/** 清空所有耳号 */ +function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) +} + /* 多选 */ const ids = ref([]) const single = ref(true) @@ -569,4 +832,48 @@ getItems() getSample() getBarns() getSheepType() - \ No newline at end of file +getTechnicalList() + + + diff --git a/src/views/biosafety/treatment/index.vue b/src/views/biosafety/treatment/index.vue index 98b4bdd..e35437e 100644 --- a/src/views/biosafety/treatment/index.vue +++ b/src/views/biosafety/treatment/index.vue @@ -2,9 +2,71 @@
- + +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+ +
+ + @@ -16,7 +78,12 @@ - + + + {{ item.label }} + + 搜索 @@ -201,7 +268,12 @@ - + + + {{ item.label }} + + @@ -380,6 +452,12 @@ + + + {{ item.label }} + + @@ -445,6 +523,32 @@ import { listUsage } from '@/api/biosafety/usage' import { listMedicine } from '@/api/biosafety/medicine' import request from '@/utils/request' import { useRouter } from 'vue-router' +import { searchEarNumbers } from '@/api/common/sheep' +import { getUserByPost } from '@/api/common/user' + +const technicalOptions = ref([]) //自定义技术员数组变量 + +// 获取技术员列表 +const fetchTechnicalList = () => { + getUserByPost({ postCode: "techs" }) + .then(res => { + if (res.code === 200 && Array.isArray(res.data)) { + technicalOptions.value = res.data.map(item => ({ + // value: item.userId, + value: item.nickName, + label: item.nickName, + // postName: item.postName, // 保留用于下拉显示 + // postCode: item.postCode // 保留用于逻辑判断 + })) + console.log(technicalOptions.value); + + } else { + technicalOptions.value = [] + ElMessage.warning(res.msg || '获取技术员列表失败') + } + }) + +} const router = useRouter() @@ -467,11 +571,153 @@ const queryParams = reactive({ pageNum: 1, pageSize: 20, sheepNo: null, + allEarNumbers: [], veterinary: null, orderByColumn: null, // 新增 isAsc: null }) +// 响应式数据 +const pasteInput = ref('') // 批量粘贴输入框 +const earNumberOptions = ref([]) // 耳号下拉选项 +const earNumberLoading = ref(false) // 耳号加载状态 +const isExpanded = ref(false) // 控制耳号展开/折叠状态 +const defaultShowCount = 2 // 默认显示的耳号数量 + +// 计算属性:控制显示的耳号列表 +const displayedEarNumbers = computed(() => { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } +}) +/** 处理粘贴事件 */ +function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) +} + +/** 处理粘贴内容提交 */ +function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' +} + +/** 远程搜索耳号 */ +function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } +} + +/** 耳号选择变化处理 */ +function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) +} + +/** 切换展开/收起状态 */ +function toggleExpand() { + isExpanded.value = !isExpanded.value +} + +/** 移除单个耳号 */ +function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } +} + +/** 清空所有耳号 */ +function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) +} + + /* ---------- 弹窗控制 ---------- */ const addDialog = ref(false) const editDialog = ref(false) @@ -802,5 +1048,50 @@ onMounted(() => { listSheepfold_management().then(res => { sheepfolds.value = res.rows.map(item => ({ id: item.id, name: item.sheepfoldName })) }) + fetchTechnicalList() // 获取技术员列表 }) + + + diff --git a/src/views/biosafety/usageInfo/index.vue b/src/views/biosafety/usageInfo/index.vue index 6903f2e..3c9ba0a 100644 --- a/src/views/biosafety/usageInfo/index.vue +++ b/src/views/biosafety/usageInfo/index.vue @@ -2,9 +2,72 @@
- + + +
+ + + + + + + + + + + + + + + + 已选: {{ queryParams.allEarNumbers.length }} 个 + + + + + + 清空全部 + + +
+ + + +
+ + + {{ tag }} + + + + + + {{ isExpanded ? '收起' : `展开剩余 ${queryParams.allEarNumbers.length - defaultShowCount} 个` }} + + + + + + +
+ +
+ + { + if (!queryParams.allEarNumbers || queryParams.allEarNumbers.length === 0) { + return [] + } + + // 如果展开或总数<=2,显示全部;否则只显示前2个 + if (isExpanded.value || queryParams.allEarNumbers.length <= defaultShowCount) { + return queryParams.allEarNumbers + } else { + return queryParams.allEarNumbers.slice(0, defaultShowCount) + } +}) +/** 处理粘贴事件 */ +function handlePaste(event) { + nextTick(() => { + handlePasteSubmit() + }) +} + +/** 处理粘贴内容提交 */ +function handlePasteSubmit() { + if (!pasteInput.value || pasteInput.value.trim() === '') { + return + } + + // 支持多种分隔符: 空格、换行、逗号、制表符 + const separators = /[\s,,\n\r\t]+/ + const earNumbers = pasteInput.value + .trim() + .split(separators) + .filter(item => item.trim() !== '') + .map(item => item.trim()) + + if (earNumbers.length === 0) { + return + } + + // 去重并添加到已选列表 + const existingSet = new Set(queryParams.value.allEarNumbers || []) + const newEarNumbers = [] + const duplicates = [] + + earNumbers.forEach(earNumber => { + if (!existingSet.has(earNumber)) { + newEarNumbers.push(earNumber) + existingSet.add(earNumber) + } else { + duplicates.push(earNumber) + } + }) + + // 添加新耳号 + if (newEarNumbers.length > 0) { + queryParams.value.allEarNumbers = [ + ...(queryParams.value.allEarNumbers || []), + ...newEarNumbers + ] + + const message = `成功添加 ${newEarNumbers.length} 个耳号,当前共 ${queryParams.value.allEarNumbers.length} 个` + + (duplicates.length > 0 ? `,已忽略 ${duplicates.length} 个重复耳号` : '') + + proxy.$modal.msgSuccess(message) + } else if (duplicates.length > 0) { + proxy.$modal.msgWarning(`所有耳号均已存在,当前共 ${queryParams.value.allEarNumbers.length} 个`) + } + + // 清空输入框 + pasteInput.value = '' +} + +/** 远程搜索耳号 */ +function searchEarNumber(query) { + if (query !== '') { + earNumberLoading.value = true + + const queries = query.trim().split(/[\s,,]+/).filter(q => q) + + if (queries.length === 1) { + // 单个耳号模糊搜索 + searchEarNumbers(query).then(response => { + earNumberOptions.value = response.data || [] + earNumberLoading.value = false + }).catch(() => { + earNumberOptions.value = [] + earNumberLoading.value = false + }) + } else { + // 多个耳号直接作为选项 + earNumberOptions.value = queries + earNumberLoading.value = false + } + } else { + earNumberOptions.value = [] + } +} + +/** 耳号选择变化处理 */ +function handleEarNumberChange(value) { + queryParams.value.allEarNumbers = [...new Set(value)] + console.log(`已选择 ${queryParams.value.allEarNumbers.length} 个耳号:`, queryParams.value.allEarNumbers) +} + +/** 切换展开/收起状态 */ +function toggleExpand() { + isExpanded.value = !isExpanded.value +} + +/** 移除单个耳号 */ +function handleRemoveEarNumber(tag) { + const index = queryParams.value.allEarNumbers.indexOf(tag) + if (index > -1) { + queryParams.value.allEarNumbers.splice(index, 1) + proxy.$modal.msgSuccess('已移除该耳号') + } + + // 如果删除后剩余<=2个,自动收起 + if (queryParams.value.allEarNumbers.length <= defaultShowCount) { + isExpanded.value = false + } +} + +/** 清空所有耳号 */ +function clearAllEarNumbers() { + proxy.$modal.confirm('确定要清空所有已选择的耳号吗?').then(() => { + queryParams.value.allEarNumbers = [] + pasteInput.value = '' + earNumberOptions.value = [] + isExpanded.value = false // 重置展开状态 + proxy.$modal.msgSuccess('已清空所有耳号') + }).catch(() => { }) +} + + + const { queryParams, form, rules } = toRefs(data) const units = ref([]) @@ -293,4 +501,46 @@ getUsageOptions() .usage-detail-dialog .card-header .el-icon { margin-right: 6px; } - \ No newline at end of file + + diff --git a/src/views/feed/FeedStatistic/index.vue b/src/views/feed/FeedStatistic/index.vue index 7af6432..c82fafb 100644 --- a/src/views/feed/FeedStatistic/index.vue +++ b/src/views/feed/FeedStatistic/index.vue @@ -201,7 +201,7 @@ import { listFeedStatistic, getFeedStatistic, delFeedStatistic, addFeedStatistic, updateFeedStatistic, initFeedStatistic } from "@/api/feed/FeedStatistic" import { listFormulaManagement } from "@/api/feed/FormulaManagement" import { listSheepfold } from "@/api/produce/manage_sheep/trans_group.js"; - import { listMaterial } from "@/api/feed/material" + import { listMaterial } from "@/api/feed/Material" import { ref } from "vue"; const { proxy } = getCurrentInstance() diff --git a/src/views/feed/FormulaManagement/index.vue b/src/views/feed/FormulaManagement/index.vue index 8e12f86..12c337c 100644 --- a/src/views/feed/FormulaManagement/index.vue +++ b/src/views/feed/FormulaManagement/index.vue @@ -282,8 +282,8 @@ import { listFormulaManagement, getFormulaManagement, delFormulaManagement, addFormulaManagement, updateFormulaManagement } from "@/api/feed/FormulaManagement" import { ref, reactive, toRefs, getCurrentInstance } from 'vue' import { listFormulaList, getFormulaList, delFormulaList, addFormulaList, updateFormulaList } from "@/api/feed/FormulaList" - import { listMaterial } from "@/api/feed/material" - import { fa } from "element-plus/es/locales.mjs" + import { listMaterial } from "@/api/feed/Material" + const { proxy } = getCurrentInstance() const { pres_status } = proxy.useDict('pres_status') // Data and refs diff --git a/src/views/feed/material/index.vue b/src/views/feed/material/index.vue index 44df173..c033fb2 100644 --- a/src/views/feed/material/index.vue +++ b/src/views/feed/material/index.vue @@ -131,7 +131,7 @@ + \ No newline at end of file