Browse Source

0513merge

main
zry 4 days ago
parent
commit
a5a73dec10
  1. 6
      gold-system/package-lock.json
  2. 1
      gold-system/package.json
  3. 234
      gold-system/src/views/consume/addConsume.vue
  4. 2
      gold-system/src/views/consume/allConsume.vue
  5. 12
      gold-system/src/views/recharge/addRecharge.vue
  6. 16
      gold-system/src/views/recharge/adminRecharge.vue

6
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",

1
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",

234
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"
>
<el-form-item prop="jwcode" label="精网号">
@ -384,53 +445,50 @@ const handleSelectBlur = (value) => {
>查询</el-button
>
</el-form-item>
<el-form-item
prop="productName"
label="商品名称"
style="float: left; margin-right: -30px"
<div style="display: flex; align-items: center; gap: 20px;">
<el-form-item prop="productName" label="商品名称" style="flex: 1; margin-right: 0px">
<el-autocomplete
v-model="addConsume.productName"
:fetch-suggestions="queryProductSearch"
placeholder="请输入或选择商品"
style="width: 300px"
@select="handleProductSelect"
value-key="name"
clearable
:trigger-on-focus="true"
>
<el-select
v-model="addConsume.productName"
placeholder="请选择"
style="width: 300px"
@change="handleProductSelect(addConsume.productName)"
@blur="handleSelectBlur(addConsume.productName)"
filterable
allow-create
default-first-option
>
<el-option
v-for="item in goods"
:key="item.value"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<!-- prop为什么绑定productName -->
<el-form-item prop="indexName" label="指标" v-if="isHC == 1">
<el-select
v-model="addConsume.indexName"
placeholder="请选择"
style="width: 100px"
@change="handleIndexSelect"
filterable
allow-create
default-first-option
>
<el-option
v-for="item in index"
:key="item.value"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<el-form-item label="指标" v-else>
<el-select disabled placeholder="请选择" style="width: 100px">
</el-select>
</el-form-item>
<el-form-item prop="allGold" label="消费金币总数">
<template #default="{ item }">
<div>{{ item.name }}</div>
</template>
</el-autocomplete>
</el-form-item>
<!-- 指标选择 -->
<!-- 使用flex布局会使页面更灵活好用修改之前选中商品名称后才会正常布局的bug -->
<el-form-item prop="indexName" label="指标" v-if="isHC == 1" style="flex: 1;margin-left: -20px">
<el-autocomplete
v-model="addConsume.indexName"
:fetch-suggestions="queryIndexSearch"
placeholder="请输入或选择指标"
style="width: 140px"
@select="handleIndexSelect"
@blur="handleIndexBlur"
value-key="name"
:disabled="isHC !== 1"
clearable
free-solo
allow-create
>
<template #default="{ item }">
<div>{{ item.name }}</div>
</template>
</el-autocomplete>
</el-form-item>
<el-form-item label="指标" v-else style="flex:1;margin-left: -5px;">
<el-input disabled placeholder="无" style="width: 100px" />
</el-form-item>
</div>
<el-form-item prop="allGold" label="消费金币总数" >
<el-input
v-model="addConsume.allGold"
style="width: 100px"

2
gold-system/src/views/consume/allConsume.vue

@ -315,7 +315,7 @@ const handleSortChange = (column) => {
} 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) {

12
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"
>
<el-upload
action="http://54.251.137.151:10702/home/java/haiwaiyanfa/gold1"
action="http://54.251.137.151:10702/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleAvatarSuccess"
@ -1303,7 +1303,7 @@ onMounted(async function () {
<el-table-column property="rechargeVoucher" label="充值凭证">
<template #default="scope">
<el-upload
action="http://54.251.137.151:10702/home/java/haiwaiyanfa/gold1"
action="http://54.251.137.151:10702/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleBatchAvatarSuccess"
@ -1468,7 +1468,7 @@ onMounted(async function () {
</el-form-item>
<el-form-item prop="rechargeVoucher" label="交款凭证">
<el-upload
action="http://54.251.137.151:10702/home/java/haiwaiyanfa/gold1"
action="http://54.251.137.151:10702/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="batchSettingHandleAvatarSuccess"

16
gold-system/src/views/recharge/adminRecharge.vue

@ -426,10 +426,10 @@ const handleSortChange = (column) => {
sortField.value = 'recharge_time'
} else if (column.prop === 'createTime') {
sortField.value = 'create_time'
} else if (column.prop === 'paidMoney') {
sortField.value = 'paid_gold'
}
}
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
console.log('传递给后端的排序字段:', sortField.value)
console.log('传递给后端的排序方式:', sortOrder.value)
get()
}
</script>
@ -585,20 +585,20 @@ const handleSortChange = (column) => {
<el-table-column prop="" label="货币名称" width="120px" />
<el-table-column
prop="paidGold"
sortable="custom"
sortable="custom"
label="充值金额"
width="120px"
/>
<el-table-column
prop="paidGold"
label="永久金币"
sortable="custom"
sortable="custom"
width="110px"
/>
<el-table-column
prop="freeGold"
label="免费金币"
sortable="custom"
sortable="custom"
width="110px"
/>
<el-table-column
@ -654,7 +654,7 @@ const handleSortChange = (column) => {
/>
<el-table-column
prop="rechargeTime"
sortable="custom"
sortable="custom"
label="交款时间"
width="200px"
>
@ -666,7 +666,7 @@ const handleSortChange = (column) => {
</el-table-column>
<el-table-column
prop="createTime"
sortable="custom"
sortable="custom"
label="提交时间"
width="200px"
/>

Loading…
Cancel
Save