diff --git a/gold-system/package-lock.json b/gold-system/package-lock.json index 4883770..b00b0eb 100644 --- a/gold-system/package-lock.json +++ b/gold-system/package-lock.json @@ -16,6 +16,7 @@ "mathjs": "^14.0.1", "moment": "^2.30.1", "pinia": "^3.0.2", + "pinyin-match": "^1.2.8", "vue": "^3.5.12", "vue-icons-plus": "^0.1.7", "vue-json-excel": "^0.3.0", @@ -4232,6 +4233,11 @@ "@vue/devtools-kit": "^7.7.2" } }, + "node_modules/pinyin-match": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/pinyin-match/-/pinyin-match-1.2.8.tgz", + "integrity": "sha512-5rBwNuOjnOtZNEgX4OlTLYsmBcE9XSV1oF/KN9mLEsVNr8HdqMb2YRhR6iqHMeU8ZBKbx/oYBgHr04uIvOlxGg==" + }, "node_modules/postcss": { "version": "8.5.1", "resolved": "https://mirrors.huaweicloud.com/repository/npm/postcss/-/postcss-8.5.1.tgz", diff --git a/gold-system/package.json b/gold-system/package.json index a47c39c..34155ed 100644 --- a/gold-system/package.json +++ b/gold-system/package.json @@ -20,6 +20,7 @@ "mathjs": "^14.0.1", "moment": "^2.30.1", "pinia": "^3.0.2", + "pinyin-match": "^1.2.8", "vue": "^3.5.12", "vue-icons-plus": "^0.1.7", "vue-json-excel": "^0.3.0", diff --git a/gold-system/src/views/consume/addConsume.vue b/gold-system/src/views/consume/addConsume.vue index 02954f7..db48630 100644 --- a/gold-system/src/views/consume/addConsume.vue +++ b/gold-system/src/views/consume/addConsume.vue @@ -121,7 +121,7 @@ const checkFreeGoldRadio = function (rule, value, callback) { }; const rules = reactive({ jwcode: [{ required: true, message: "请输入精网号", trigger: "blur" }], - productName: [{ required: true, message: "请选择消费商品", trigger: "blur" }], + productName: [{ required: true, message: "请选择消费商品", trigger: "change" }], // 修改为 change taskCoin: [{ required: true, message: "请输入任务金币", trigger: "blur" }], freeCoin: [{ required: true, message: "请输入免费金币", trigger: "blur" }], rechargeCoin: [ @@ -191,37 +191,39 @@ const getUser = async function (jwcode) { } }; -//这是查询用户金币信息的接口 -const userGold = ref({}); -const getUserGold = async function (jwcode) { - trimJwCode(); - try { - // 发送POST请求 - const result = await request({ - url: "/recharge/user", - data: { - jwcode: addConsume.value.jwcode, - area: adminData.value.area, - }, - }); - // 将响应结果存储到响应式数据中 - console.log("请求成功", result); - if (result.code === 0) { - ElMessage.error(result.msg); - } else { - // 存储表格数据 - userGold.value = result.data; - addConsume.value.username = result.data.name; - addConsume.value.area = result.data.area; - ElMessage.success(result.msg); - } - } catch (error) { - console.log("请求失败", error); - ElMessage.error("无此精网号"); - addConsume.value.jwcode = ""; - // 在这里可以处理错误逻辑,比如显示错误提示等 - } -}; + +//下面这个也是校验精网号是否存在的方法,通过脱离文本框实现,但是上面方法绑定了信息面板,在输入正确的精网号后能显示。 +// //这是查询用户金币信息的接口 +// const userGold = ref({}); +// const getUserGold = async function (jwcode) { +// trimJwCode(); +// try { +// // 发送POST请求 +// const result = await request({ +// url: "/recharge/user", +// data: { +// jwcode: addConsume.value.jwcode, +// area: adminData.value.area, +// }, +// }); +// // 将响应结果存储到响应式数据中 +// console.log("请求成功", result); +// if (result.code === 0) { +// ElMessage.error(result.msg); +// } else { +// // 存储表格数据 +// userGold.value = result.data; +// addConsume.value.username = result.data.name; +// addConsume.value.area = result.data.area; +// ElMessage.success(result.msg); +// } +// } catch (error) { +// console.log("请求失败", error); +// ElMessage.error("无此精网号"); +// addConsume.value.jwcode = ""; +// // 在这里可以处理错误逻辑,比如显示错误提示等 +// } +// }; function calculateCoins() { if ( @@ -317,26 +319,85 @@ const getIndexs = async function (type) { // 选择商品名称是时触发的方法 const isHC = ref(0); -const handleProductSelect = (productName) => { - // 根据商品名称获取对应的商品信息 - // indexs.value.productName = productName;为什么直接绑定??? +// const handleProductSelect = (productName) => { +// // 根据商品名称获取对应的商品信息 +// // indexs.value.productName = productName;为什么直接绑定??? +// if (productName === "homilychart") { +// isHC.value = 1; +// addConsume.value.productName = "homilychart"; // 商品名 +// addConsume.value.indexName = ""; // 指标名 +// } else { +// isHC.value = 0; +// addConsume.value.productName = productName; +// addConsume.value.indexName = ""; +// } +// }; +const indexs = ref([]); +// const handleIndexSelect = () => { +// if (isHC.value === 1 && addConsume.value.indexName) { +// addConsume.value.productName = "homilychart" + addConsume.value.indexName; +// } +// }; + +// 商品搜索逻辑 +const queryProductSearch = (queryString, cb) => { + const results = queryString + ? goods.value.filter(item => + item.name.toLowerCase().includes(queryString.toLowerCase()) + ) + : goods.value; + cb(results); +}; + +// 指标搜索逻辑 +const queryIndexSearch = (queryString, cb) => { + const results = queryString + ? index.value.filter(item => // 将 indexData 替换为 index + item.name.toLowerCase().includes(queryString.toLowerCase()) + ) + : index.value; + cb(results); +}; + +// 商品选择处理(重点修改) +const handleProductSelect = async (selectedItem) => { + const productName = typeof selectedItem === 'string' + ? selectedItem + : selectedItem?.name || ''; + if (productName === "homilychart") { isHC.value = 1; - addConsume.value.productName = "homilychart"; // 商品名 - addConsume.value.indexName = ""; // 指标名 + addConsume.value.productName = "homilychart"; + addConsume.value.indexName = ""; + // 动态获取指标数据 + await getIndexs("homilychart"); } else { isHC.value = 0; addConsume.value.productName = productName; addConsume.value.indexName = ""; } }; -const indexs = ref([]); -const handleIndexSelect = () => { - if (isHC.value === 1 && addConsume.value.indexName) { - addConsume.value.productName = "homilychart" + addConsume.value.indexName; + +// 指标选择处理(重点修改) +const handleIndexSelect = (selectedItem) => { + if (isHC.value === 1) { + const indexName = typeof selectedItem === 'string' + ? selectedItem + : selectedItem?.name || ''; + // 仅更新指标名称字段 + addConsume.value.indexName = indexName; + } +}; + +// 处理自由输入指标 +const handleIndexBlur = (e) => { + if (isHC.value === 1 && e.target.value) { + // 仅更新指标名称字段 + addConsume.value.indexName = e.target.value; } }; + // 挂载 onMounted(async function () { await getAdminData(); @@ -368,7 +429,7 @@ const handleSelectBlur = (value) => { ref="Ref" :rules="rules" label-width="auto" - style="max-width: 750px" + style="max-width: 750px;" class="form-style" > @@ -384,53 +445,50 @@ const handleSelectBlur = (value) => { >查询 - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + { } else if (column.prop === 'createTime') { sortField.value = 'create_time' } - sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC' + sortOrder.value = column.order === 'ascending' ? 'DESC' : 'ASC' get() } const handlePageSizeChange = function (val) { diff --git a/gold-system/src/views/recharge/addRecharge.vue b/gold-system/src/views/recharge/addRecharge.vue index b78cb46..ddabbb3 100644 --- a/gold-system/src/views/recharge/addRecharge.vue +++ b/gold-system/src/views/recharge/addRecharge.vue @@ -265,7 +265,7 @@ const getCurrency = async function () { const handleAvatarSuccess = (response, uploadFile) => { imageUrl.value = URL.createObjectURL(uploadFile.raw) console.log('图片上传成功', response, uploadFile) - addRecharge.value.rechargeVoucher = `http://54.251.137.151:10702/home/java/haiwaiyanfa/gold1/${response.data}` + addRecharge.value.rechargeVoucher = `http://54.251.137.151:10702/upload/${response.data}` console.log('图片名称', addRecharge.value.rechargeVoucher) } @@ -650,7 +650,7 @@ const changeVoucher = function (row) { const handleBatchAvatarSuccess = (response, uploadFile) => { imageUrl.value = URL.createObjectURL(uploadFile.raw) console.log('图片上传成功', response, uploadFile) - rechargeVoucher.value = `http://54.251.137.151:10702/home/java/haiwaiyanfa/gold1/${response.data}` + rechargeVoucher.value = `http://54.251.137.151:10702/upload/${response.data}` console.log('图片名称', rechargeVoucher.value) } //批量充值确认按钮 @@ -782,7 +782,7 @@ const batchSettingInit = function () { const batchSettingHandleAvatarSuccess = (response, uploadFile) => { batchSettingObj.value.imageUrl = URL.createObjectURL(uploadFile.raw) console.log('图片上传成功', response, uploadFile) - batchSettingObj.value.rechargeVoucher = `http://54.251.137.151:10702/home/java/haiwaiyanfa/gold1/${response.data}` + batchSettingObj.value.rechargeVoucher = `http://54.251.137.151:10702/upload/${response.data}` console.log('图片名称', batchSettingObj.value.rechargeVoucher) } // 批量设置取消按钮 @@ -971,7 +971,7 @@ onMounted(async function () { style="margin-bottom: 5px" >