Browse Source

消费提交人

youhua/chongzhi
lihuilin 2 months ago
parent
commit
bc3177b7af
  1. 116
      src/views/consume/gold/addCoinConsume.vue
  2. 36
      src/views/history/history.vue

116
src/views/consume/gold/addCoinConsume.vue

@ -1,12 +1,12 @@
<script setup>
import {onMounted, reactive, ref, watch} from "vue";
import {ElIcon, ElMessage, ElMessageBox} from "element-plus";
import { onMounted, reactive, ref, watch } from "vue";
import { ElIcon, ElMessage, ElMessageBox } from "element-plus";
import moment from "moment";
import request from "@/util/http.js"
import Cookies from 'js-cookie';
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from "pinia";
import {WarnTriangleFilled} from "@element-plus/icons-vue";
import { useAdminStore } from "@/store/index.js";
import { storeToRefs } from "pinia";
import { WarnTriangleFilled } from "@element-plus/icons-vue";
import dayjs from "dayjs";
const adminStore = useAdminStore();
@ -15,25 +15,19 @@ const { adminData, menuTree } = storeToRefs(adminStore);
const trimJwCode = () => {
if (addConsume.value.jwcode) {
//
const trimmed = addConsume.value.jwcode.toString().replace(/\s/g, '');
const numeric = Number(trimmed);
const trimmed = addConsume.value.jwcode.toString().replace(/\s/g, '')
const numeric = Number(trimmed)
//
if (!isNaN(numeric)) {
addConsume.value.jwcode = numeric;
addConsume.value.jwcode = numeric
} else {
ElMessage.error("精网号格式不正确,请输入数字");
ElMessage.error("精网号格式不正确,请输入数字")
}
}
}
//
const addDisabled = ref(false)
/*
====================数据=================================
*/
//
// const adminData = ref({});
//
const user = ref({
jwcode: null,
@ -65,14 +59,12 @@ const addConsume = ref({
taskGold: null, //
remark: "",//
adminId: null,// id
});
//
const Ref = ref(null);
//
adminName: null,//
})
const Ref = ref(null)
const rules = reactive({
jwcode: [
{ required: true, message: "请输入精网号", trigger: "blur" },
// { type: 'number', message: "", trigger: "blur" }
],
goodsName: [{ required: true, message: "请选择商品", trigger: "blur" }],
sumGold: [
@ -83,7 +75,7 @@ const rules = reactive({
const isValid = /^(0\.\d{1,2})|([1-9]\d*(\.\d{1,2})?)$/.test(value);
if (!isValid) {
callback(new Error("请输入大于0的正数(可包含最多两位小数)"));
callback(new Error("请输入大于0的正数(可包含最多两位小数)"));
} else {
callback();
}
@ -93,30 +85,7 @@ const rules = reactive({
]
});
//
const goods = ref([]);
/*
====================方法=================================
*/
const getAdminData = async function () {
try {//await
const result = await request({
url: "/admin/userinfo",
data: {},
});
adminData.value = result;
addConsume.value.adminId = adminData.value.id;
addConsume.value.name = adminData.value.adminName;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
const goods = ref([])
//
function validateInput() {
const sumGold = parseFloat(addConsume.value.sumGold);
@ -261,16 +230,16 @@ const add = async function () {
//value
WriteCookiesTime.value = dayjs().format("YYYY-MM-DD HH:mm:ss");
// cookies,jwcodekeyvaluejwcode1
Cookies.set(WriteCookies.value, WriteCookiesTime.value, {expires:
1, path: '/'});
Cookies.set(WriteCookies.value, WriteCookiesTime.value, {
expires:
1, path: '/'
});
addDisabled.value = true
// POST
const result = await request({
// url: "/consume/add",
url: "/consume/add",
data: {
...addConsume.value,
jwcode: addConsume.value.jwcode,
adminId: addConsume.value.adminId,
sumGold: addConsume.value.sumGold * 100,
@ -278,9 +247,10 @@ const add = async function () {
taskGold: addConsume.value.taskGold * 100,
permanentGold: addConsume.value.permanentGold * 100,
goodsName: addConsume.value.goodsName,
remark: addConsume.value.remark
remark: addConsume.value.remark,
adminName: adminData.value.adminName
}
});
})
addDisabled.value = false
console.log("add请求", result);
//
@ -318,7 +288,7 @@ function resetForm() {
remark: "",
adminId: adminData.value.id,
adminName: adminData.value.adminName,
};
}
console.log("重置表单")
@ -425,7 +395,6 @@ const addBefore = () => {
});
};
//
const getUser = async function (jwcode) {
try {
@ -545,9 +514,10 @@ watch(
*/
//
onMounted(async function () {
await getAdminData();
await getGoods();
});
await getGoods()
console.log('adminData', adminData.value)
})
</script>
@ -592,8 +562,8 @@ onMounted(async function () {
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-input v-model="addConsume.remark" style="width: 13.5vw;margin-left:70px" :rows="4" maxlength="100" show-word-limit
type="textarea" />
<el-input v-model="addConsume.remark" style="width: 13.5vw;margin-left:70px" :rows="4" maxlength="100"
show-word-limit type="textarea" />
</el-form-item>
<el-button type="success" @click="resetForm()" style="margin-left: 200px;margin-top:10px">重置</el-button>
@ -685,48 +655,43 @@ onMounted(async function () {
</el-row>
</el-form>
</el-card>
<el-dialog
v-model="ConsumeDialogVisible"
title="操作确认"
:before-close="ConsumeDialogVisiblehandleClose"
:close-on-click-modal="false"
width="480px"
>
<el-dialog v-model="ConsumeDialogVisible" title="操作确认" :before-close="ConsumeDialogVisiblehandleClose"
:close-on-click-modal="false" width="480px">
<!-- 内容整体居中且收窄 -->
<div class="confirm-body">
<!-- 用户信息 -->
<div>
<div class="field-label">用户信息</div>
<el-input :model-value="user.jwcode + (user.name ? '' + user.name + '' : '')" disabled/>
<el-input :model-value="user.jwcode + (user.name ? '' + user.name + '' : '')" disabled />
</div>
<!-- 活动名称 -->
<div class="field">
<div class="field-label">商品名称</div>
<el-input v-model="addConsume.goodsName" disabled/>
<el-input v-model="addConsume.goodsName" disabled />
</div>
<!--金币总数 -->
<div class="field">
<div class="field-label">金币总数</div>
<el-input v-model="addConsume.sumGold" disabled/>
<el-input v-model="addConsume.sumGold" disabled />
</div>
<!-- 金币详细信息同一行左右排列 -->
<el-row :gutter="20" class="coins-row">
<el-col :span="8">
<div class="field">
<div class="field-label">永久金币</div>
<el-input v-model="addConsume.permanentGold" disabled/>
<el-input v-model="addConsume.permanentGold" disabled />
</div>
</el-col>
<el-col :span="8">
<div class="field">
<div class="field-label">免费金币</div>
<el-input v-model="addConsume.freeGold" disabled/>
<el-input v-model="addConsume.freeGold" disabled />
</div>
</el-col>
<el-col :span="8">
<div class="field">
<div class="field-label">任务金币</div>
<el-input v-model="addConsume.taskGold" disabled/>
<el-input v-model="addConsume.taskGold" disabled />
</div>
</el-col>
@ -734,13 +699,13 @@ onMounted(async function () {
<!-- 风险提示 -->
<div style="display: flex; align-items: center; margin-top: 20px;">
<el-icon :size="24" color="#FFD700">
<WarnTriangleFilled/>
<WarnTriangleFilled />
</el-icon>
<p>重复购买风险提示</p>
</div>
<!-- 记录 + 虚线分隔 -->
<div>
<el-divider border-style="dashed"/>
<el-divider border-style="dashed" />
<p>检测到该用户近期有相似消费记录</p>
· {{ ReadCookiesTime }} 购买 {{ addConsume.goodsName }}(操作人: {{ adminData.adminName }})
</div>
@ -842,22 +807,27 @@ p {
height: 50px;
display: block;
}
.add-form {
max-width: 50%;
float: left;
}
/* 标题居中 */
.el-dialog__header {
text-align: center;
}
.confirm-body {
width: 420px;
margin: 0 auto;
}
/* 字段块与标签样式 */
.field {
margin-bottom: 14px;
}
.customer-info {
width: 700px;
float: right;

36
src/views/history/history.vue

@ -23,21 +23,21 @@
<el-card style="margin-top:10px" v-show="tableData.length > 0">
<el-table :data="tableData" style="width: 100%" height="600">
<el-table-column type="index" label="序号" width="55" header-align="center" align="center">
<el-table-column type="index" label="序号" width="100" header-align="center" align="center">
<template #default="scope">
{{ scope.$index + 1 + (pagination.pageNum - 1) * pagination.pageSize }}
</template>
</el-table-column>
<el-table-column prop="name" label="客户姓名" width="120" show-overflow-tooltip />
<el-table-column prop="jwcode" label="精网号" width="120" header-align="center" align="center" />
<el-table-column prop="num" label="数量" width="120" header-align="center" align="center" />
<el-table-column prop="updateType" show-overflow-tooltip label="更新类型" width="120" align="center" />
<el-table-column v-if="activeName === 'new'" prop="freeGold" label="免费金币" width="120" align="center" />
<el-table-column v-if="activeName === 'new'" prop="permanentGold" label="永久金币" width="120" align="center" />
<el-table-column v-if="activeName === 'new'" prop="taskGold" label="任务金币" width="120" align="center" />
<el-table-column prop="operator" label="操作人" width="120" />
<el-table-column prop="name" label="客户姓名" width="180" show-overflow-tooltip />
<el-table-column prop="jwcode" label="精网号" width="180" header-align="center" align="center" />
<el-table-column prop="num" label="数量" width="180" header-align="center" align="center" />
<el-table-column prop="updateType" show-overflow-tooltip label="更新类型" width="180" align="center" />
<el-table-column v-if="activeName === 'new'" prop="freeGold" label="免费金币" width="180" align="center" />
<el-table-column v-if="activeName === 'new'" prop="permanentGold" label="永久金币" width="180" align="center" />
<el-table-column v-if="activeName === 'new'" prop="taskGold" label="任务金币" width="180" align="center" />
<el-table-column prop="operator" label="操作人" width="180" />
<el-table-column prop="createTime" label="更新时间" width="200" header-align="center" align="center" />
<el-table-column prop="remark" label="备注" show-overflow-tooltip width="180" align="center" />
<el-table-column prop="remark" label="备注" show-overflow-tooltip width="200" align="center" />
</el-table>
<el-pagination background style="margin-top:20px" v-model:current-page="pagination.pageNum"
v-model:page-size="pagination.pageSize" layout="total, sizes, prev, pager, next, jumper"
@ -92,8 +92,8 @@ const getOld = async function () {
if (findMenuById(menuTree.value, permissionMapping.History_Query)) {
try {
if ((searchObj.value.name || searchObj.value.jwcode) && activeName.value == 'old') {
const startTime = dateRange.value[0] ? moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') : ""
const endTime = dateRange.value[1] ? moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') : ""
const startTime = dateRange.value && dateRange.value[0] ? moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') : ""
const endTime = dateRange.value && dateRange.value[1] ? moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') : ""
const res = await API({
url: '/history/getOldHistoryRecord',
data: {
@ -104,10 +104,12 @@ const getOld = async function () {
pageSize: pagination.value.pageSize,
}
})
if (res.code == 200) {
ElMessage.success('查询成功')
tableData.value = res.data.list
console.log('tableData.value', res.data.list);
pagination.value.total = res.data.total
}
} else {
ElMessage.error('请输入姓名或精网号')
return
@ -122,8 +124,8 @@ const get = async function () {
if (findMenuById(menuTree.value, permissionMapping.History_Query)) {
try {
if ((searchObj.value.name || searchObj.value.jwcode) && activeName.value == 'new') {
const startTime = dateRange.value[0] ? moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') : ""
const endTime = dateRange.value[1] ? moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') : ""
const startTime = dateRange.value && dateRange.value[0] ? moment(dateRange.value[0]).format('YYYY-MM-DD HH:mm:ss') : ""
const endTime = dateRange.value && dateRange.value[1] ? moment(dateRange.value[1]).format('YYYY-MM-DD HH:mm:ss') : ""
const res = await API({
url: '/history/getNewHistoryRecord',
data: {
@ -134,8 +136,12 @@ const get = async function () {
pageSize: pagination.value.pageSize,
}
})
if (res.code == 200) {
ElMessage.success('查询成功')
tableData.value = res.data.list
console.log('tableData.value', res.data.list)
pagination.value.total = res.data.total
}
} else {
ElMessage.error('请输入姓名或精网号')
return

Loading…
Cancel
Save