Browse Source

二期正式

donghaolin-2
donghaolin 4 months ago
parent
commit
f79cc2a952
  1. 241
      gold-system/src/views/audit/rechargeAudit.vue
  2. 214
      gold-system/src/views/audit/refundAudit.vue
  3. 136
      gold-system/src/views/consume/addConsume.vue
  4. 147
      gold-system/src/views/consume/allConsume.vue
  5. 2
      gold-system/src/views/index.vue
  6. 39
      gold-system/src/views/login.vue
  7. 23
      gold-system/src/views/managerecharge/activity.vue
  8. 14
      gold-system/src/views/managerecharge/rate.vue
  9. 300
      gold-system/src/views/permissions/index.vue
  10. 475
      gold-system/src/views/recharge/addRecharge.vue
  11. 16
      gold-system/src/views/recharge/adminRecharge.vue
  12. 167
      gold-system/src/views/recharge/allRecharge.vue
  13. 131
      gold-system/src/views/refund/addRefund.vue
  14. 14
      gold-system/src/views/refund/allRefund.vue
  15. 14
      gold-system/src/views/usergold/index.vue
  16. 77
      gold-system/src/views/usergoldInfo/index.vue
  17. 45
      gold-system/src/views/workspace/index.vue

241
gold-system/src/views/audit/rechargeAudit.vue

@ -19,7 +19,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -30,7 +30,6 @@ const getAdminData = async function () {
} }
}; };
// //
const tableData = ref([]); const tableData = ref([]);
// ====================================== // ======================================
@ -123,7 +122,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/recharge",
"http://39.99.159.73:20090/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } } { ...getObj.value, rechargeVo: { ...rechargeVo.value } }
); );
@ -253,7 +252,7 @@ const getActivity = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{} {}
); );
@ -272,7 +271,7 @@ const getArea = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{} {}
); );
// //
@ -337,7 +336,7 @@ const passConfirm = async function () {
console.log("通过对象", passObj.value); console.log("通过对象", passObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/audit/audit/goldedit",
"http://39.99.159.73:20090/audit/audit/goldedit",
passObj.value passObj.value
); );
@ -384,7 +383,7 @@ const rejectConfirm = async function () {
console.log("驳回对象", rejectObj.value); console.log("驳回对象", rejectObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/audit/audit/goldedit",
"http://39.99.159.73:20090/audit/audit/goldedit",
rejectObj.value rejectObj.value
); );
@ -436,32 +435,69 @@ onMounted(async function () {
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text> <el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="rechargeVo.jwcode" placeholder="请输入精网号" size="large" style="width: 240px" clearable />
<el-input
v-model="rechargeVo.jwcode"
placeholder="请输入精网号"
size="large"
style="width: 240px"
clearable
/>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">活动名称</el-text> <el-text class="mx-1" size="large">活动名称</el-text>
<el-select v-model="rechargeVo.activityId" placeholder="请选择活动名称" size="large" style="width: 240px"
clearable>
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId" />
<el-select
v-model="rechargeVo.activityId"
placeholder="请选择活动名称"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">充值方式</el-text> <el-text class="mx-1" size="large">充值方式</el-text>
<el-select v-model="rechargeVo.payWay" placeholder="请选择充值方式" size="large" style="width: 240px" clearable>
<el-option v-for="item in payWay" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="rechargeVo.payWay"
placeholder="请选择充值方式"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in payWay"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element" v-if="adminData.area == '总部'"> <div class="head-card-element" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="rechargeVo.area" placeholder="请选择所属地区" size="large" style="width: 240px" clearable>
<el-option v-for="item in area" :key="item" :label="item" :value="item" />
<el-select
v-model="rechargeVo.area"
placeholder="请选择所属地区"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item"
:label="item"
:value="item"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
@ -470,9 +506,16 @@ onMounted(async function () {
<el-col :span="21"> <el-col :span="21">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">充值时间</el-text> <el-text class="mx-1" size="large">充值时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" />
<el-button style="margin-left: 10px" @click="getToday()"></el-button>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
<el-button style="margin-left: 10px" @click="getToday()"
></el-button
>
<el-button @click="getYesterday()"></el-button> <el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button> <el-button @click="get7Days()">近7天</el-button>
</div> </div>
@ -490,7 +533,12 @@ onMounted(async function () {
<el-row> <el-row>
<el-col> <el-col>
<el-card> <el-card>
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
<el-tabs
v-model="activeName"
type="card"
class="demo-tabs"
@tab-click="handleClick"
>
<el-tab-pane label="全部" name="all"></el-tab-pane> <el-tab-pane label="全部" name="all"></el-tab-pane>
<el-tab-pane label="待审核" name="wait"></el-tab-pane> <el-tab-pane label="待审核" name="wait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane> <el-tab-pane label="已通过" name="pass"></el-tab-pane>
@ -498,7 +546,12 @@ onMounted(async function () {
</el-tabs> </el-tabs>
<div> <div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"> <el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -508,16 +561,41 @@ onMounted(async function () {
<el-table-column prop="username" label="姓名" width="100px" /> <el-table-column prop="username" label="姓名" width="100px" />
<el-table-column prop="jwcode" label="精网号" width="150px" /> <el-table-column prop="jwcode" label="精网号" width="150px" />
<el-table-column prop="area" label="所属地区" width="100px" /> <el-table-column prop="area" label="所属地区" width="100px" />
<el-table-column prop="activityName" label="活动名称" width="150px" />
<el-table-column prop="rechargeGold" label="充值金额" width="100px" />
<el-table-column prop="rechargeWay" label="充值方式" width="100px" />
<el-table-column
prop="activityName"
label="活动名称"
width="150px"
/>
<el-table-column
prop="rechargeGold"
label="充值金额"
width="100px"
/>
<el-table-column
prop="rechargeWay"
label="充值方式"
width="100px"
/>
<el-table-column prop="paidGold" label="永久金币" width="100px" /> <el-table-column prop="paidGold" label="永久金币" width="100px" />
<el-table-column prop="freeGold" label="免费金币" width="100px" /> <el-table-column prop="freeGold" label="免费金币" width="100px" />
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip />
<el-table-column
prop="remark"
label="备注"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="payWay" label="支付方式" width="100px" /> <el-table-column prop="payWay" label="支付方式" width="100px" />
<el-table-column prop="rechargeVoucher" label="支付凭证" width="150px">
<el-table-column
prop="rechargeVoucher"
label="支付凭证"
width="150px"
>
<template #default="scope"> <template #default="scope">
<el-image :src="scope.row.rechargeVoucher" alt="凭证" style="width: 50px; height: 50px" />
<el-image
:src="scope.row.rechargeVoucher"
alt="凭证"
style="width: 50px; height: 50px"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="name" label="提交人" width="100px" /> <el-table-column prop="name" label="提交人" width="100px" />
@ -543,7 +621,12 @@ onMounted(async function () {
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reson" label="驳回理由" width="200px" show-overflow-tooltip />
<el-table-column
prop="reson"
label="驳回理由"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="rechargeTime" label="交款时间" width="200px"> <el-table-column prop="rechargeTime" label="交款时间" width="200px">
<template #default="scope"> <template #default="scope">
{{ {{
@ -552,15 +635,29 @@ onMounted(async function () {
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" label="提交时间" width="200px" /> <el-table-column prop="createTime" label="提交时间" width="200px" />
<el-table-column fixed="right" prop="operation" label="操作" width="150px">
<el-table-column
fixed="right"
prop="operation"
label="操作"
width="150px"
>
<template #default="scope"> <template #default="scope">
<div class="operation"> <div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="passConfirm">
<el-popconfirm
title="确定要通过此条记录吗?"
@confirm="passConfirm"
>
<template #reference> <template #reference>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="pass(scope.row)">
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="pass(scope.row)"
>
通过 通过
</el-button> </el-button>
</template> </template>
@ -571,10 +668,16 @@ onMounted(async function () {
</el-button> </el-button>
</template> </template>
</el-popconfirm> </el-popconfirm>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="reject(scope.row)">
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="reject(scope.row)"
>
驳回 驳回
</el-button> </el-button>
</div> </div>
@ -585,17 +688,42 @@ onMounted(async function () {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination"> <div class="pagination">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div> <div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select> </el-select>
<div></div> <div></div>
</el-pagination> </el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div> <div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div> <div></div>
</el-pagination> </el-pagination>
</div> </div>
@ -604,12 +732,29 @@ onMounted(async function () {
</el-row> </el-row>
<!-- 驳回弹出框 --> <!-- 驳回弹出框 -->
<el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible">
<el-dialog
v-model="rejectVisible"
title="驳回理由"
width="500"
:before-close="closeRejectVisible"
>
<template #footer> <template #footer>
<el-form :model="rejectObj" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px">
<el-form
:model="rejectObj"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 600px"
>
<el-form-item prop="reson" label="驳回理由:"> <el-form-item prop="reson" label="驳回理由:">
<el-input v-model="rejectObj.reson" maxlength="150" show-word-limit style="width: 350px" type="textarea"
placeholder="请输入内容" />
<el-input
v-model="rejectObj.reson"
maxlength="150"
show-word-limit
style="width: 350px"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>

214
gold-system/src/views/audit/refundAudit.vue

@ -18,7 +18,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -106,7 +106,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/audit/audit/refund",
"http://39.99.159.73:20090/audit/audit/refund",
{ ...getObj.value, detail: { ...detail.value } } { ...getObj.value, detail: { ...detail.value } }
); );
@ -234,7 +234,7 @@ const handleClick = function (tab, event) {
const getProduct = async function () { const getProduct = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -252,7 +252,7 @@ const getArea = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{} {}
); );
// //
@ -314,7 +314,7 @@ const passConfirm = async function () {
console.log("通过对象", passObj.value); console.log("通过对象", passObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/audit/audit/edit",
"http://39.99.159.73:20090/audit/audit/edit",
passObj.value passObj.value
); );
@ -360,7 +360,7 @@ const rejectConfirm = async function () {
console.log("驳回对象", rejectObj.value); console.log("驳回对象", rejectObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/audit/audit/edit",
"http://39.99.159.73:20090/audit/audit/edit",
rejectObj.value rejectObj.value
); );
@ -413,30 +413,69 @@ onMounted(async function () {
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text> <el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="detail.jwcode" placeholder="请输入精网号" size="large" style="width: 240px" clearable />
<el-input
v-model="detail.jwcode"
placeholder="请输入精网号"
size="large"
style="width: 240px"
clearable
/>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">退款类型</el-text> <el-text class="mx-1" size="large">退款类型</el-text>
<el-select v-model="detail.refundType" placeholder="请选择退款类型" size="large" style="width: 240px" clearable>
<el-option v-for="item in refundType" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="detail.refundType"
placeholder="请选择退款类型"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in refundType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">退款商品</el-text> <el-text class="mx-1" size="large">退款商品</el-text>
<el-select v-model="detail.refundGoods" placeholder="请选择退款商品" size="large" style="width: 240px" clearable>
<el-option v-for="item in product" :key="item.name" :label="item.name" :value="item.name" />
<el-select
v-model="detail.refundGoods"
placeholder="请选择退款商品"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in product"
:key="item.name"
:label="item.name"
:value="item.name"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div class="head-card-element" v-if="adminData.area == '总部'"> <div class="head-card-element" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="detail.area" placeholder="请选择所属地区" size="large" style="width: 240px" clearable>
<el-option v-for="item in area" :key="item" :label="item" :value="item" />
<el-select
v-model="detail.area"
placeholder="请选择所属地区"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item"
:label="item"
:value="item"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
@ -445,9 +484,16 @@ onMounted(async function () {
<el-col :span="21"> <el-col :span="21">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">充值时间</el-text> <el-text class="mx-1" size="large">充值时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" />
<el-button style="margin-left: 10px" @click="getToday()"></el-button>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
<el-button style="margin-left: 10px" @click="getToday()"
></el-button
>
<el-button @click="getYesterday()"></el-button> <el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button> <el-button @click="get7Days()">近7天</el-button>
</div> </div>
@ -465,7 +511,12 @@ onMounted(async function () {
<el-row> <el-row>
<el-col> <el-col>
<el-card> <el-card>
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
<el-tabs
v-model="activeName"
type="card"
class="demo-tabs"
@tab-click="handleClick"
>
<el-tab-pane label="全部" name="all"></el-tab-pane> <el-tab-pane label="全部" name="all"></el-tab-pane>
<el-tab-pane label="待审核" name="wait"></el-tab-pane> <el-tab-pane label="待审核" name="wait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane> <el-tab-pane label="已通过" name="pass"></el-tab-pane>
@ -473,7 +524,12 @@ onMounted(async function () {
</el-tabs> </el-tabs>
<div> <div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"> <el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -498,10 +554,19 @@ onMounted(async function () {
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rechargeCoin" label="永久金币" width="100px" />
<el-table-column
prop="rechargeCoin"
label="永久金币"
width="100px"
/>
<el-table-column prop="freeCoin" label="免费金币" width="100px" /> <el-table-column prop="freeCoin" label="免费金币" width="100px" />
<el-table-column prop="taskCoin" label="任务金币" width="100px" /> <el-table-column prop="taskCoin" label="任务金币" width="100px" />
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip />
<el-table-column
prop="remark"
label="备注"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="adminName" label="提交人" width="100px" /> <el-table-column prop="adminName" label="提交人" width="100px" />
<el-table-column prop="status" label="审核状态" width="100px"> <el-table-column prop="status" label="审核状态" width="100px">
<!-- 模板内容 --> <!-- 模板内容 -->
@ -526,21 +591,40 @@ onMounted(async function () {
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reson" label="驳回理由" width="200px" show-overflow-tooltip />
<el-table-column
prop="reson"
label="驳回理由"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="createTime" label="提交时间" width="200px"> <el-table-column prop="createTime" label="提交时间" width="200px">
<template #default="scope"> <template #default="scope">
{{ moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }} {{ moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" prop="operation" label="操作" width="150px">
<el-table-column
fixed="right"
prop="operation"
label="操作"
width="150px"
>
<template #default="scope"> <template #default="scope">
<div class="operation"> <div class="operation">
<el-popconfirm title="确定要通过此条记录吗?" @confirm="passConfirm">
<el-popconfirm
title="确定要通过此条记录吗?"
@confirm="passConfirm"
>
<template #reference> <template #reference>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="pass(scope.row)">
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="pass(scope.row)"
>
通过 通过
</el-button> </el-button>
</template> </template>
@ -551,10 +635,16 @@ onMounted(async function () {
</el-button> </el-button>
</template> </template>
</el-popconfirm> </el-popconfirm>
<el-button :disabled="scope.row.status === 1 || scope.row.status === 2
? true
: false
" type="primary" text @click="reject(scope.row)">
<el-button
:disabled="
scope.row.status === 1 || scope.row.status === 2
? true
: false
"
type="primary"
text
@click="reject(scope.row)"
>
驳回 驳回
</el-button> </el-button>
</div> </div>
@ -565,17 +655,42 @@ onMounted(async function () {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination"> <div class="pagination">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div> <div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select> </el-select>
<div></div> <div></div>
</el-pagination> </el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div> <div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div> <div></div>
</el-pagination> </el-pagination>
</div> </div>
@ -584,12 +699,29 @@ onMounted(async function () {
</el-row> </el-row>
<!-- 驳回弹出框 --> <!-- 驳回弹出框 -->
<el-dialog v-model="rejectVisible" title="驳回理由" width="500" :before-close="closeRejectVisible">
<el-dialog
v-model="rejectVisible"
title="驳回理由"
width="500"
:before-close="closeRejectVisible"
>
<template #footer> <template #footer>
<el-form :model="rejectObj" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px">
<el-form
:model="rejectObj"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 600px"
>
<el-form-item prop="reson" label="驳回理由:"> <el-form-item prop="reson" label="驳回理由:">
<el-input v-model="rejectObj.reson" maxlength="150" show-word-limit style="width: 350px" type="textarea"
placeholder="请输入内容" />
<el-input
v-model="rejectObj.reson"
maxlength="150"
show-word-limit
style="width: 350px"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>

136
gold-system/src/views/consume/addConsume.vue

@ -1,5 +1,5 @@
<script setup> <script setup>
import { reactive,onMounted } from "vue";
import { reactive, onMounted } from "vue";
import { ref, computed, watch } from "vue"; import { ref, computed, watch } from "vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { Plus } from "@element-plus/icons-vue"; import { Plus } from "@element-plus/icons-vue";
@ -7,14 +7,14 @@ import axios from "axios";
import { ElMessageBox } from "element-plus"; import { ElMessageBox } from "element-plus";
import API from "../../api/index.js"; import API from "../../api/index.js";
import moment from "moment"; import moment from "moment";
import _ from 'lodash';
import _ from "lodash";
// //
const adminData = ref({}); const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -39,7 +39,7 @@ const add = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/consume/add",
"http://39.99.159.73:20090/consume/add",
addConsume.value addConsume.value
); );
if (result.code === 0) { if (result.code === 0) {
@ -137,11 +137,12 @@ const user = ref({
const getUser = async function (jwcode) { const getUser = async function (jwcode) {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
area: adminData.value.area,
});
console.log("请求成功", result); console.log("请求成功", result);
if (result.code === 0) { if (result.code === 0) {
ElMessage.error(result.msg); ElMessage.error(result.msg);
} else { } else {
@ -164,7 +165,7 @@ const goods = ref([]);
const getGoods = async function () { const getGoods = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -176,14 +177,15 @@ const getGoods = async function () {
} }
}; };
// //
const userGold = ref({}); const userGold = ref({});
const getUserGold = async function (jwcode) { const getUserGold = async function (jwcode) {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
area: adminData.value.area,
});
// //
console.log("请求成功", result); console.log("请求成功", result);
if (result.code === 0) { if (result.code === 0) {
@ -206,9 +208,9 @@ const getUserGold = async function (jwcode) {
function calculateCoins() { function calculateCoins() {
if ( if (
userGold.value.coreJb + userGold.value.coreJb +
userGold.value.free6 +
userGold.value.free12 +
userGold.value.buyJb <
userGold.value.free6 +
userGold.value.free12 +
userGold.value.buyJb <
addConsume.value.allGold addConsume.value.allGold
) { ) {
addConsume.value.allGold = 0; addConsume.value.allGold = 0;
@ -259,39 +261,95 @@ onMounted(async function () {
<template> <template>
<div style="margin-bottom: 20px; font-weight: bolder">新增消费</div> <div style="margin-bottom: 20px; font-weight: bolder">新增消费</div>
<el-form :model="addConsume" ref="Ref" :rules="rules" label-width="auto" style="max-width: 750px" class="form-style">
<el-form
:model="addConsume"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 750px"
class="form-style"
>
<el-form-item prop="jwcode" label="精网号"> <el-form-item prop="jwcode" label="精网号">
<el-input v-model="addConsume.jwcode" style="width: 220px" @change="getUserGold(addConsume.jwcode)" />
<el-button type="primary" @click="getUser(addConsume.jwcode)" style="margin-left: 20px">查询</el-button>
<el-input
v-model="addConsume.jwcode"
style="width: 220px"
@change="getUserGold(addConsume.jwcode)"
/>
<el-button
type="primary"
@click="getUser(addConsume.jwcode)"
style="margin-left: 20px"
>查询</el-button
>
</el-form-item> </el-form-item>
<el-form-item prop="productId" label="商品名称"> <el-form-item prop="productId" label="商品名称">
<el-select v-model="addConsume.productId" placeholder="请选择" style="width: 300px">
<el-option v-for="item in goods" :key="item.value" :label="item.name" :value="item.productId" />
<el-select
v-model="addConsume.productId"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in goods"
:key="item.value"
:label="item.name"
:value="item.productId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="allGold" label="消费金币总数"> <el-form-item prop="allGold" label="消费金币总数">
<el-input v-model="addConsume.allGold" style="width: 100px" @change="calculateCoins()" />
<el-input
v-model="addConsume.allGold"
style="width: 100px"
@change="calculateCoins()"
/>
</el-form-item> </el-form-item>
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<el-form-item prop="rechargeCoin" label="永久金币" style="float: left"> <el-form-item prop="rechargeCoin" label="永久金币" style="float: left">
<el-input disabled v-model="addConsume.rechargeCoin" style="width: 100px; margin-left: -5px" />
<el-input
disabled
v-model="addConsume.rechargeCoin"
style="width: 100px; margin-left: -5px"
/>
<p style="margin-right: 0px"></p> <p style="margin-right: 0px"></p>
</el-form-item> </el-form-item>
<el-form-item prop="freeCoin" label="免费金币" style="float: left; margin-left: -20px">
<el-input disabled v-model="addConsume.freeCoin" style="width: 100px; margin-left: -5px" />
<el-form-item
prop="freeCoin"
label="免费金币"
style="float: left; margin-left: -20px"
>
<el-input
disabled
v-model="addConsume.freeCoin"
style="width: 100px; margin-left: -5px"
/>
<p style="margin-right: 0px"></p> <p style="margin-right: 0px"></p>
</el-form-item> </el-form-item>
<el-form-item prop="taskCoin" label="任务金币" style="margin-left: -20px"> <el-form-item prop="taskCoin" label="任务金币" style="margin-left: -20px">
<el-input disabled v-model="addConsume.taskCoin" style="width: 100px; margin-left: -5px" />
<el-input
disabled
v-model="addConsume.taskCoin"
style="width: 100px; margin-left: -5px"
/>
<p style="margin-right: 20px"></p> <p style="margin-right: 20px"></p>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item prop="remark" label="备注"> <el-form-item prop="remark" label="备注">
<el-input v-model="addConsume.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit
type="textarea" />
<el-input
v-model="addConsume.remark"
style="width: 300px"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
/>
</el-form-item> </el-form-item>
<el-form-item prop="commitName" label="提交人"> <el-form-item prop="commitName" label="提交人">
<el-input style="width: 300px" :value="adminData.name" disabled placeholder="提交人姓名" />
<el-input
style="width: 300px"
:value="adminData.name"
disabled
placeholder="提交人姓名"
/>
</el-form-item> </el-form-item>
<el-button @click="delteConsume" style="margin-left: 280px">重置</el-button> <el-button @click="delteConsume" style="margin-left: 280px">重置</el-button>
<el-button type="primary" @click="addBefore"> 提交 </el-button> <el-button type="primary" @click="addBefore"> 提交 </el-button>
@ -299,7 +357,12 @@ onMounted(async function () {
<!-- 客户信息栏 --> <!-- 客户信息栏 -->
<el-card style="width: 850px; float: right" class="customer-info"> <el-card style="width: 850px; float: right" class="customer-info">
<el-form :model="user" label-width="auto" style="max-width: 1200px" label-position="left">
<el-form
:model="user"
label-width="auto"
style="max-width: 1200px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text> <el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px"> <el-row style="margin-top: 20px">
<el-col :span="10"> <el-col :span="10">
@ -319,13 +382,18 @@ onMounted(async function () {
</el-col> </el-col>
<el-col :span="14"> <el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px"> <el-form-item label="当前金币总数" style="width: 500px">
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb !== undefined">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb !== undefined">(永久金币:{{ user.buyJb
}};免费金币:{{
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.buyJb !== undefined"
>{{ user.buyJb + user.free6 + user.free12 + user.coreJb }}</span
>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb !== undefined"
>(永久金币:{{ user.buyJb }};免费金币:{{
user.free6 + user.free12 user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span>
}};任务金币:{{ user.coreJb }})</span
>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">

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

@ -11,7 +11,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -100,7 +100,7 @@ const get = async function (val) {
} }
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post("/hwjb/consume/select", {
const result = await API.post("http://39.99.159.73:20090/consume/select", {
...getObj.value, ...getObj.value,
consumeDetail: { ...detailVo.value }, consumeDetail: { ...detailVo.value },
}); });
@ -238,7 +238,7 @@ const goods = ref([]);
const getGoods = async function () { const getGoods = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
// //
console.log("请求成功", result); console.log("请求成功", result);
// //
@ -261,27 +261,57 @@ getGoods();
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">商品名称</el-text> <el-text class="mx-1" size="large">商品名称</el-text>
<el-select v-model="detailVo.productName" placeholder="请选择商品名称" size="large" style="width: 240px"
clearable>
<el-option v-for="item in goods" :key="item.activityId" :label="item.name" :value="item.name" />
<el-select
v-model="detailVo.productName"
placeholder="请选择商品名称"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in goods"
:key="item.activityId"
:label="item.name"
:value="item.name"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消费平台</el-text> <el-text class="mx-1" size="large">消费平台</el-text>
<el-select v-model="detailVo.consumePlatform" placeholder="请选择消费平台" size="large" style="width: 240px"
clearable>
<el-option v-for="item in consumePlatform" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="detailVo.consumePlatform"
placeholder="请选择消费平台"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in consumePlatform"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消费类型</el-text> <el-text class="mx-1" size="large">消费类型</el-text>
<el-select v-model="detailVo.consumeType" placeholder="请选择消费类型" size="large" style="width: 240px"
clearable>
<el-option v-for="item in consumeType" :key="item" :label="item.label" :value="item.value" />
<el-select
v-model="detailVo.consumeType"
placeholder="请选择消费类型"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in consumeType"
:key="item"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
@ -290,9 +320,16 @@ getGoods();
<el-col :span="21"> <el-col :span="21">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消费时间</el-text> <el-text class="mx-1" size="large">消费时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" />
<el-button style="margin-left: 10px" @click="getToday()"></el-button>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
<el-button style="margin-left: 10px" @click="getToday()"
></el-button
>
<el-button @click="getYesterday()"></el-button> <el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button> <el-button @click="get7Days()">近7天</el-button>
</div> </div>
@ -311,9 +348,18 @@ getGoods();
<el-col> <el-col>
<el-card> <el-card>
<div> <div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"
:default-sort="{ prop: 'createTime ', order: 'descending' }">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table
:data="tableData"
:height="tableHeight"
style="width: 100%"
:default-sort="{ prop: 'createTime ', order: 'descending' }"
>
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -324,9 +370,21 @@ getGoods();
<el-table-column prop="jwcode" label="精网号" width="120px" /> <el-table-column prop="jwcode" label="精网号" width="120px" />
<el-table-column prop="uarea" label="所属地区" width="120px" /> <el-table-column prop="uarea" label="所属地区" width="120px" />
<el-table-column prop="productName" label="商品" width="200px" /> <el-table-column prop="productName" label="商品" width="200px" />
<el-table-column prop="consumePlatform" label="消费平台" width="120px" />
<el-table-column prop="consumeType" label="消费类型" width="120px" />
<el-table-column prop="rechargeTotal" label="消费金币总数" width="180px">
<el-table-column
prop="consumePlatform"
label="消费平台"
width="120px"
/>
<el-table-column
prop="consumeType"
label="消费类型"
width="120px"
/>
<el-table-column
prop="rechargeTotal"
label="消费金币总数"
width="180px"
>
<template #default="scope"> <template #default="scope">
{{ {{
scope.row.taskCoin * -1 + scope.row.taskCoin * -1 +
@ -345,11 +403,17 @@ getGoods();
{{ scope.row.freeCoin * -1 }} {{ scope.row.freeCoin * -1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="rechargeCoin" label="永久金币" width="120px"><template #default="scope">
<el-table-column prop="rechargeCoin" label="永久金币" width="120px"
><template #default="scope">
{{ scope.row.rechargeCoin * -1 }} {{ scope.row.rechargeCoin * -1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip />
<el-table-column
prop="remark"
label="备注"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="name" label="提交人" width="120px" /> <el-table-column prop="name" label="提交人" width="120px" />
<el-table-column prop="createTime" label="消费时间" width="180px" /> <el-table-column prop="createTime" label="消费时间" width="180px" />
</el-table> </el-table>
@ -357,17 +421,42 @@ getGoods();
<!-- 分页 --> <!-- 分页 -->
<div class="pagination"> <div class="pagination">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div> <div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select> </el-select>
<div></div> <div></div>
</el-pagination> </el-pagination>
<el-pagination background layout="prev, pager, next, slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next, slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div> <div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div> <div></div>
</el-pagination> </el-pagination>
</div> </div>

2
gold-system/src/views/index.vue

@ -19,7 +19,7 @@ const adminData = ref({
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;

39
gold-system/src/views/login.vue

@ -16,15 +16,19 @@ const form = ref({ jwcode: "", password: "", token: "" });
const login = async function () { const login = async function () {
try { try {
const result = await axios.post( const result = await axios.post(
"/hwjb/admin/login",
"http://39.99.159.73:20090/admin/login",
form.value form.value
); );
if (result.data.code == 200) { if (result.data.code == 200) {
localStorage.setItem("token", result.data.msg); localStorage.setItem("token", result.data.msg);
localStorage.setItem("permission", result.data.data.permission); localStorage.setItem("permission", result.data.data.permission);
if (result.data.data.permission == '1' || result.data.data.permission == '2' || result.data.data.permission == '3') {
if (
result.data.data.permission == "1" ||
result.data.data.permission == "2" ||
result.data.data.permission == "3"
) {
router.push("/workspace"); router.push("/workspace");
}else if(result.data.data.permission=='4'){
} else if (result.data.data.permission == "4") {
router.push("/noPermission"); router.push("/noPermission");
} }
ElMessage.success("登录成功"); ElMessage.success("登录成功");
@ -43,10 +47,21 @@ const login = async function () {
</script> </script>
<template> <template>
<el-row class="login-page"> <el-row class="login-page">
<img :span="12" src="../assets/background.jpg" alt="logo" class="bg" fit="fit" />
<img
:span="12"
src="../assets/background.jpg"
alt="logo"
class="bg"
fit="fit"
/>
<el-col :span="6" :offset="3" class="form"> <el-col :span="6" :offset="3" class="form">
<!-- 登录表单 --> <!-- 登录表单 -->
<el-form :model="form" size="large" autocomplete="off" @keyup.enter.native="login()">
<el-form
:model="form"
size="large"
autocomplete="off"
@keyup.enter.native="login()"
>
<el-form-item> <el-form-item>
<h1 style="color: #409eff">金币系统登录</h1> <h1 style="color: #409eff">金币系统登录</h1>
</el-form-item> </el-form-item>
@ -54,12 +69,22 @@ const login = async function () {
<el-input v-model="form.jwcode" placeholder="请输入精网号"></el-input> <el-input v-model="form.jwcode" placeholder="请输入精网号"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input v-model="form.password" type="password" placeholder="请输入密码" />
<el-input
v-model="form.password"
type="password"
placeholder="请输入密码"
/>
</el-form-item> </el-form-item>
<el-form-item class="flex"> </el-form-item> <el-form-item class="flex"> </el-form-item>
<!-- 登录按钮 --> <!-- 登录按钮 -->
<el-form-item> <el-form-item>
<el-button class="button" type="primary" auto-insert-space @click="login()">登录</el-button>
<el-button
class="button"
type="primary"
auto-insert-space
@click="login()"
>登录</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-col> </el-col>

23
gold-system/src/views/managerecharge/activity.vue

@ -5,14 +5,14 @@ import { ElMessage, ElMessageBox } from "element-plus";
import axios from "axios"; import axios from "axios";
import moment from "moment"; import moment from "moment";
import API from "../../api/index.js"; import API from "../../api/index.js";
import _ from 'lodash';
import _ from "lodash";
// //
const adminData = ref({}); const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -75,7 +75,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{ ...getObj.value, activity: { ...activity.value } } { ...getObj.value, activity: { ...activity.value } }
); );
@ -138,7 +138,7 @@ const add = async function () {
console.log("添加对象", addObj.value); console.log("添加对象", addObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/activity/add",
"http://39.99.159.73:20090/recharge/activity/add",
addObj.value addObj.value
); );
@ -169,7 +169,7 @@ const add = async function () {
// 使 _.throttle trailing false // 使 _.throttle trailing false
const throttledAdd = _.throttle(add, 5000, { trailing: false }); const throttledAdd = _.throttle(add, 5000, { trailing: false });
// //
// let onceFunction = true;
// let onceFunction = true;
// //
// const throttledAdd = (...args) => { // const throttledAdd = (...args) => {
// if (onceFunction) { // if (onceFunction) {
@ -193,7 +193,7 @@ const delConfirm = async function () {
console.log("delObj", delObj.value); console.log("delObj", delObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/activity/edit",
"http://39.99.159.73:20090/recharge/activity/edit",
delObj.value delObj.value
); );
// //
@ -341,9 +341,16 @@ onMounted(async function () {
</div> </div>
<div> <div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"> <el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ scope.$index + 1+(getObj.pageNum-1)*getObj.pageSize }}</span>
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="activityName" label="活动名称" /> <el-table-column prop="activityName" label="活动名称" />

14
gold-system/src/views/managerecharge/rate.vue

@ -14,7 +14,7 @@ const adminData = ref({
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -74,7 +74,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post("/hwjb/rates/search", {
const result = await API.post("http://39.99.159.73:20090/rates/search", {
...getObj.value, ...getObj.value,
rate: { ...time.value }, rate: { ...time.value },
}); });
@ -120,7 +120,7 @@ const addRate = async function () {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/rates/add",
"http://39.99.159.73:20090/rates/add",
rateAdd.value rateAdd.value
); );
if (result.code == 0) { if (result.code == 0) {
@ -170,7 +170,7 @@ const getEditData = async function (row) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/rates/searchById?rateId=" + row.rateId,
"http://39.99.159.73:20090/rates/searchById?rateId=" + row.rateId,
{} {}
); );
@ -205,7 +205,7 @@ const editRate = async function () {
console.log("搜索参数", rateEdit.value); console.log("搜索参数", rateEdit.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/rates/update",
"http://39.99.159.73:20090/rates/update",
rateEdit.value rateEdit.value
); );
// //
@ -232,7 +232,7 @@ const deleteRate = async function (row) {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/rates/delete/ " + row.rateId,
"http://39.99.159.73:20090/rates/delete/ " + row.rateId,
{} {}
); );
// //
@ -388,7 +388,7 @@ const delConfirm = async function (row) {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/rates/delete/ " + row.rateId,
"http://39.99.159.73:20090/rates/delete/ " + row.rateId,
{} {}
); );
// //

300
gold-system/src/views/permissions/index.vue

@ -7,7 +7,7 @@ import moment from "moment";
import { ta } from "element-plus/es/locales.mjs"; import { ta } from "element-plus/es/locales.mjs";
import API from "../../api/index.js"; import API from "../../api/index.js";
import { UserFilled } from "@element-plus/icons-vue"; import { UserFilled } from "@element-plus/icons-vue";
import _ from 'lodash';
import _ from "lodash";
// //
const tableData = ref([]); const tableData = ref([]);
@ -45,7 +45,7 @@ const get = async function (val) {
} }
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post("/hwjb/admin/search", {
const result = await API.post("http://39.99.159.73:20090/admin/search", {
...getObj.value, ...getObj.value,
admin: { ...admin.value }, admin: { ...admin.value },
}); });
@ -53,7 +53,7 @@ const get = async function (val) {
console.log("tableData", tableData.value); console.log("tableData", tableData.value);
total.value = result.data.total; total.value = result.data.total;
} catch (error) { } catch (error) {
console.log("请求失败", error)
console.log("请求失败", error);
} }
}; };
// //
@ -69,23 +69,23 @@ const reset = function () {
// //
const getArea = async function () { const getArea = async function () {
try { try {
const result = await API.post("/hwjb/admin/area", {});
const result = await API.post("http://39.99.159.73:20090/admin/area", {});
area.value = result.data; area.value = result.data;
} catch (error) { } catch (error) {
console.log("请求失败", error); console.log("请求失败", error);
// //
} }
}
};
// //
const getStore = async function () { const getStore = async function () {
try { try {
const result = await API.post("/hwjb/admin/store", {});
const result = await API.post("http://39.99.159.73:20090/admin/store", {});
store.value = result.data; store.value = result.data;
} catch (error) { } catch (error) {
console.log("请求失败", error); console.log("请求失败", error);
// //
} }
}
};
// //
const checkNumber = function () { const checkNumber = function () {
@ -119,20 +119,23 @@ const checkNumber = function () {
// //
const openPermissionAddVisible = function () { const openPermissionAddVisible = function () {
permissionAddVisible.value = true; permissionAddVisible.value = true;
}
};
// //
const closePermissionAddVisible = function () { const closePermissionAddVisible = function () {
permissionAddVisible.value = false; permissionAddVisible.value = false;
}
};
// //
const permissionAddInit = function () { const permissionAddInit = function () {
permissionAddObj.value = {}; permissionAddObj.value = {};
openPermissionAddVisible(); openPermissionAddVisible();
}
};
// //
const getAdminByJwcodeWithoutPermission = async function () { const getAdminByJwcodeWithoutPermission = async function () {
try { try {
const result = await API.post("/hwjb/admin/selectNo", permissionAddObj.value);
const result = await API.post(
"http://39.99.159.73:20090/admin/selectNo",
permissionAddObj.value
);
if (result.code == 200) { if (result.code == 200) {
permissionAddObj.value = result.data[0]; permissionAddObj.value = result.data[0];
ElMessage.success("精网号查询成功"); ElMessage.success("精网号查询成功");
@ -144,21 +147,32 @@ const getAdminByJwcodeWithoutPermission = async function () {
console.log("请求失败", error); console.log("请求失败", error);
// //
} }
}
};
// //
const permissionAdd = async function () { const permissionAdd = async function () {
try { try {
if ((permissionAddObj.value.jwcode == "" || permissionAddObj.value.jwcode == null) || (permissionAddObj.value.name == "" || permissionAddObj.value.name == null)) {
if (
permissionAddObj.value.jwcode == "" ||
permissionAddObj.value.jwcode == null ||
permissionAddObj.value.name == "" ||
permissionAddObj.value.name == null
) {
ElMessage.error("请选择要添加权限的用户"); ElMessage.error("请选择要添加权限的用户");
return; return;
} }
if (permissionAddObj.value.permisson == "" || permissionAddObj.value.permission == null) {
if (
permissionAddObj.value.permisson == "" ||
permissionAddObj.value.permission == null
) {
ElMessage.error("请选择权限"); ElMessage.error("请选择权限");
return; return;
} }
console.log("新增用户权限提交", permissionAddObj.value); console.log("新增用户权限提交", permissionAddObj.value);
const result = await API.post("/hwjb/admin/update", permissionAddObj.value);
const result = await API.post(
"http://39.99.159.73:20090/admin/update",
permissionAddObj.value
);
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -175,17 +189,19 @@ const permissionAdd = async function () {
ElMessage.error("新增用户权限失败"); ElMessage.error("新增用户权限失败");
closePermissionAddVisible(); closePermissionAddVisible();
} }
}
};
// 使 _.throttle trailing false // 使 _.throttle trailing false
const throttledPermissionAdd = _.throttle(permissionAdd, 5000, { trailing: false });
const throttledPermissionAdd = _.throttle(permissionAdd, 5000, {
trailing: false,
});
// //
const openPermissionEditVisible = function () { const openPermissionEditVisible = function () {
permissionEditVisible.value = true; permissionEditVisible.value = true;
}
};
// //
const closePermissionEditVisible = function () { const closePermissionEditVisible = function () {
permissionEditVisible.value = false; permissionEditVisible.value = false;
}
};
// //
const permissionEditInit = function (row) { const permissionEditInit = function (row) {
permissionEditObj.value = {}; permissionEditObj.value = {};
@ -196,11 +212,14 @@ const permissionEditInit = function (row) {
permissionEditObj.value.permission = row.permission; permissionEditObj.value.permission = row.permission;
console.log("编辑用户权限", permissionEditObj.value); console.log("编辑用户权限", permissionEditObj.value);
openPermissionEditVisible(); openPermissionEditVisible();
}
};
// //
const permissionEdit = async function () { const permissionEdit = async function () {
try { try {
const result = await API.post("/hwjb/admin/update", permissionEditObj.value);
const result = await API.post(
"http://39.99.159.73:20090/admin/update",
permissionEditObj.value
);
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -217,21 +236,26 @@ const permissionEdit = async function () {
closePermissionEditVisible(); closePermissionEditVisible();
} }
}
const throttledPermissionEdit = _.throttle(permissionEdit, 5000, { trailing: false });
};
const throttledPermissionEdit = _.throttle(permissionEdit, 5000, {
trailing: false,
});
// //
const del = function (row) { const del = function (row) {
delObj.value = {}; delObj.value = {};
console.log(row, "删除初始化"); console.log(row, "删除初始化");
delObj.value.jwcode = row.jwcode; delObj.value.jwcode = row.jwcode;
}
};
// //
const delConfirm = async function () { const delConfirm = async function () {
try { try {
delObj.value.permission = "4"; delObj.value.permission = "4";
console.log(delObj.value); console.log(delObj.value);
const result = await API.post("/hwjb/admin/update", delObj.value);
const result = await API.post(
"http://39.99.159.73:20090/admin/update",
delObj.value
);
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -239,15 +263,14 @@ const delConfirm = async function () {
ElMessage.success("删除权限成功"); ElMessage.success("删除权限成功");
delObj.value = {}; delObj.value = {};
get(); get();
} catch (error) { } catch (error) {
console.log("删除权限失败", error); console.log("删除权限失败", error);
// //
ElMessage.error("删除权限失败"); ElMessage.error("删除权限失败");
} }
}
};
// //
const editStatus =async function (row) {
const editStatus = async function (row) {
try { try {
console.log(row); console.log(row);
@ -257,22 +280,24 @@ const editStatus =async function (row) {
console.log("修改用户权限状态", permissionEditObj.value); console.log("修改用户权限状态", permissionEditObj.value);
const result = await API.post("/hwjb/admin/update", permissionEditObj.value);
const result = await API.post(
"http://39.99.159.73:20090/admin/update",
permissionEditObj.value
);
// //
console.log("请求成功", result); console.log("请求成功", result);
ElMessage.success(permissionEditObj.value.status1==1?"启用成功":"禁用成功");
ElMessage.success(
permissionEditObj.value.status1 == 1 ? "启用成功" : "禁用成功"
);
permissionEditObj.value = {}; permissionEditObj.value = {};
get(); get();
} catch (error) { } catch (error) {
console.log("修改用户权限失败", error); console.log("修改用户权限失败", error);
// //
} }
}
};
// //
onMounted(async function () { onMounted(async function () {
@ -289,19 +314,44 @@ onMounted(async function () {
<div class="head-card"> <div class="head-card">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text> <el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="admin.jwcode" style="width: 240px" placeholder="请输入精网号" clearable />
<el-input
v-model="admin.jwcode"
style="width: 240px"
placeholder="请输入精网号"
clearable
/>
</div> </div>
<div class="head-card-element" style="margin-left: 50px"> <div class="head-card-element" style="margin-left: 50px">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="admin.area" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-option v-for="item in area" :key="item" :label="item" :value="item" />
<el-select
v-model="admin.area"
placeholder="请选择所属地区"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item"
:label="item"
:value="item"
/>
</el-select> </el-select>
</div> </div>
<div class="head-card-element" style="margin-left: 50px"> <div class="head-card-element" style="margin-left: 50px">
<el-text class="mx-1" size="large">所属部门</el-text> <el-text class="mx-1" size="large">所属部门</el-text>
<el-select v-model="admin.store" placeholder="请选择部门" style="width: 240px" clearable>
<el-option v-for="item in store" :key="item" :label="item" :value="item" />
<el-select
v-model="admin.store"
placeholder="请选择部门"
style="width: 240px"
clearable
>
<el-option
v-for="item in store"
:key="item"
:label="item"
:value="item"
/>
</el-select> </el-select>
</div> </div>
@ -318,11 +368,20 @@ onMounted(async function () {
<el-card> <el-card>
<!-- 添加 --> <!-- 添加 -->
<div class="add-item"> <div class="add-item">
<el-button style="color: #048efb; border: 1px solid #048efb" @click="permissionAddInit()">新增用户权限</el-button>
<el-button
style="color: #048efb; border: 1px solid #048efb"
@click="permissionAddInit()"
>新增用户权限</el-button
>
</div> </div>
<div> <div>
<el-table :data="tableData" style="width: 100%; ">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table :data="tableData" style="width: 100%">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -336,27 +395,33 @@ onMounted(async function () {
<el-table-column prop="store" label="所属部门" /> <el-table-column prop="store" label="所属部门" />
<el-table-column prop="permission" label="部门权限"> <el-table-column prop="permission" label="部门权限">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.permission === '1'">
总部管理员
</span>
<span v-if="scope.row.permission === '2'">
分部财务
</span>
<span v-if="scope.row.permission === '3'">
分部客服
</span>
<span v-if="scope.row.permission === '1'"> 总部管理员 </span>
<span v-if="scope.row.permission === '2'"> 分部财务 </span>
<span v-if="scope.row.permission === '3'"> 分部客服 </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注" /> <el-table-column prop="remark" label="备注" />
<el-table-column prop="operation" label="操作" width="200px"> <el-table-column prop="operation" label="操作" width="200px">
<template #default="scope"> <template #default="scope">
<el-button type="warning" text @click="permissionEditInit(scope.row)"
:disabled="scope.row.status1 === 0">
<el-button
type="warning"
text
@click="permissionEditInit(scope.row)"
:disabled="scope.row.status1 === 0"
>
修改权限 修改权限
</el-button> </el-button>
<el-popconfirm title="确定将此条活动删除吗?" @confirm="delConfirm">
<el-popconfirm
title="确定将此条活动删除吗?"
@confirm="delConfirm"
>
<template #reference> <template #reference>
<el-button type="danger" text @click="del(scope.row)" :disabled="scope.row.status1 === 0">
<el-button
type="danger"
text
@click="del(scope.row)"
:disabled="scope.row.status1 === 0"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -371,9 +436,20 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column prop="status1" label="状态"> <el-table-column prop="status1" label="状态">
<template #default="scope"> <template #default="scope">
<el-switch v-model="scope.row.status1" :active-value="1" :inactive-value="0" size="large"
@change="editStatus(scope.row)" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
active-text="启用" inactive-text="禁用" inline-prompt />
<el-switch
v-model="scope.row.status1"
:active-value="1"
:inactive-value="0"
size="large"
@change="editStatus(scope.row)"
style="
--el-switch-on-color: #13ce66;
--el-switch-off-color: #ff4949;
"
active-text="启用"
inactive-text="禁用"
inline-prompt
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -381,17 +457,42 @@ onMounted(async function () {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div> <div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select> </el-select>
<div></div> <div></div>
</el-pagination> </el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div> <div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div> <div></div>
</el-pagination> </el-pagination>
</div> </div>
@ -400,16 +501,32 @@ onMounted(async function () {
</el-row> </el-row>
<!-- 这是新增用户权限弹窗 --> <!-- 这是新增用户权限弹窗 -->
<el-dialog v-model="permissionAddVisible" title="新增用户权限" width="800px" :close-on-click-modal="false">
<div style="display: flex; margin: 20px 0px 20px 0px;">
<span class="permissionVisible" style="margin-right: 10px;">精网号:</span>
<el-input placeholder="请输入精网号" v-model="permissionAddObj.jwcode" style="width: 240px; margin-right: 10px;"
clearable></el-input>
<el-button type="primary" @click="getAdminByJwcodeWithoutPermission()">查询</el-button>
<el-dialog
v-model="permissionAddVisible"
title="新增用户权限"
width="800px"
:close-on-click-modal="false"
>
<div style="display: flex; margin: 20px 0px 20px 0px">
<span class="permissionVisible" style="margin-right: 10px">精网号:</span>
<el-input
placeholder="请输入精网号"
v-model="permissionAddObj.jwcode"
style="width: 240px; margin-right: 10px"
clearable
></el-input>
<el-button type="primary" @click="getAdminByJwcodeWithoutPermission()"
>查询</el-button
>
</div> </div>
<el-descriptions class="margin-top" :column="2" :size="size" border label-width="200px">
<el-descriptions
class="margin-top"
:column="2"
:size="size"
border
label-width="200px"
>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<div class="permissionVisible"> <div class="permissionVisible">
@ -460,7 +577,9 @@ onMounted(async function () {
<el-icon><star-filled /></el-icon> <el-icon><star-filled /></el-icon>
</el-divider> </el-divider>
<div> <div>
<span class="permissionVisible" style="margin-right: 20px;">权限设置:</span>
<span class="permissionVisible" style="margin-right: 20px"
>权限设置:</span
>
<el-radio-group v-model="permissionAddObj.permission"> <el-radio-group v-model="permissionAddObj.permission">
<el-radio value="1" border>总部管理员</el-radio> <el-radio value="1" border>总部管理员</el-radio>
<el-radio value="2" border>分部财务</el-radio> <el-radio value="2" border>分部财务</el-radio>
@ -470,15 +589,27 @@ onMounted(async function () {
<template #footer> <template #footer>
<div> <div>
<el-button @click="closePermissionAddVisible()">取消</el-button> <el-button @click="closePermissionAddVisible()">取消</el-button>
<el-button type="primary" @click="throttledPermissionAdd()"> 提交 </el-button>
<el-button type="primary" @click="throttledPermissionAdd()">
提交
</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 这是编辑用户权限弹窗 --> <!-- 这是编辑用户权限弹窗 -->
<el-dialog v-model="permissionEditVisible" title="编辑用户权限" width="800px" :close-on-click-modal="false">
<el-descriptions class="margin-top" :column="2" :size="size" border label-width="200px">
<el-dialog
v-model="permissionEditVisible"
title="编辑用户权限"
width="800px"
:close-on-click-modal="false"
>
<el-descriptions
class="margin-top"
:column="2"
:size="size"
border
label-width="200px"
>
<el-descriptions-item> <el-descriptions-item>
<template #label> <template #label>
<div class="permissionVisible"> <div class="permissionVisible">
@ -529,19 +660,22 @@ onMounted(async function () {
<el-icon><star-filled /></el-icon> <el-icon><star-filled /></el-icon>
</el-divider> </el-divider>
<div> <div>
<span class="permissionVisible" style="margin-right: 20px;">权限设置:</span>
<span class="permissionVisible" style="margin-right: 20px"
>权限设置:</span
>
<el-radio-group v-model="permissionEditObj.permission"> <el-radio-group v-model="permissionEditObj.permission">
<el-radio value=1 border>总部管理员</el-radio>
<el-radio value=2 border>分部财务</el-radio>
<el-radio value=3 border>分部客服</el-radio>
<el-radio value="1" border>总部管理员</el-radio>
<el-radio value="2" border>分部财务</el-radio>
<el-radio value="3" border>分部客服</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template #footer> <template #footer>
<div> <div>
<el-button @click="closePermissionEditVisible()">取消</el-button> <el-button @click="closePermissionEditVisible()">取消</el-button>
<el-button type="primary" @click="throttledPermissionEdit()"> 提交 </el-button>
<el-button type="primary" @click="throttledPermissionEdit()">
提交
</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>

475
gold-system/src/views/recharge/addRecharge.vue

@ -17,7 +17,10 @@ const Rate = ref();
const adminData = ref({}); const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post("/hwjb/admin/userinfo", {});
const result = await API.post(
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result; adminData.value = result;
addRecharge.value.adminId = adminData.value.adminId; addRecharge.value.adminId = adminData.value.adminId;
addRecharge.value.area = adminData.value.area; addRecharge.value.area = adminData.value.area;
@ -28,7 +31,6 @@ const getAdminData = async function () {
} }
}; };
// //
const addRecharge = ref({ const addRecharge = ref({
rechargeVoucher: "", rechargeVoucher: "",
@ -45,7 +47,7 @@ const add = async function () {
console.log("开始添加充值信息", addRecharge.value); console.log("开始添加充值信息", addRecharge.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/recharge/add",
"http://39.99.159.73:20090/recharge/recharge/add",
addRecharge.value addRecharge.value
); );
if (result.code === 0) { if (result.code === 0) {
@ -127,8 +129,10 @@ const user = ref({
const getUser = async function (jwcode) { const getUser = async function (jwcode) {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
area: adminData.value.area,
});
console.log("请求成功", result); console.log("请求成功", result);
if (result.code === 0) { if (result.code === 0) {
@ -153,9 +157,12 @@ const activity = ref([]);
const getActivity = async function () { const getActivity = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/activity/select", {
activity: { status: 1 },
});
const result = await API.post(
"http://39.99.159.73:20090/recharge/activity/select",
{
activity: { status: 1 },
}
);
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -168,13 +175,12 @@ const getActivity = async function () {
} }
}; };
// //
const currency = ref([]); const currency = ref([]);
const getCurrency = async function () { const getCurrency = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/rates/status", {});
const result = await API.post("http://39.99.159.73:20090/rates/status", {});
// //
console.log("货币请求成功", result); console.log("货币请求成功", result);
@ -188,12 +194,11 @@ const getCurrency = async function () {
} }
}; };
// //
const handleAvatarSuccess = (response, uploadFile) => { const handleAvatarSuccess = (response, uploadFile) => {
imageUrl.value = URL.createObjectURL(uploadFile.raw); imageUrl.value = URL.createObjectURL(uploadFile.raw);
console.log("图片上传成功", response, uploadFile); console.log("图片上传成功", response, uploadFile);
addRecharge.value.rechargeVoucher = `/hwjb/upload/${response.data}`;
addRecharge.value.rechargeVoucher = `http://39.99.159.73:20090/upload/${response.data}`;
console.log("图片名称", addRecharge.value.rechargeVoucher); console.log("图片名称", addRecharge.value.rechargeVoucher);
}; };
@ -229,9 +234,12 @@ const options = [
const getActivityById = async function (row) { const getActivityById = async function (row) {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/activity/select", {
activity: { activityId: row },
});
const result = await API.post(
"http://39.99.159.73:20090/recharge/activity/select",
{
activity: { activityId: row },
}
);
addRecharge.value.rechargeRatio = result.data[0].rechargeRatio; addRecharge.value.rechargeRatio = result.data[0].rechargeRatio;
console.log("看看有了吗", addRecharge.value.rechargeRatio); console.log("看看有了吗", addRecharge.value.rechargeRatio);
} catch (error) { } catch (error) {
@ -285,8 +293,10 @@ let jwcodeSet;
const getJwcodeList = async function () { const getJwcodeList = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/user/jwcode",
{ jwcode: jwcode, area: adminData.value.area });
const result = await API.post(
"http://39.99.159.73:20090/recharge/user/jwcode",
{ jwcode: jwcode, area: adminData.value.area }
);
// //
console.log("请求成功", result); console.log("请求成功", result);
@ -627,7 +637,7 @@ const changeVoucher = function (row) {
const handleBatchAvatarSuccess = (response, uploadFile) => { const handleBatchAvatarSuccess = (response, uploadFile) => {
imageUrl.value = URL.createObjectURL(uploadFile.raw); imageUrl.value = URL.createObjectURL(uploadFile.raw);
console.log("图片上传成功", response, uploadFile); console.log("图片上传成功", response, uploadFile);
rechargeVoucher.value = `/hwjb/upload/${response.data}`;
rechargeVoucher.value = `http://39.99.159.73:20090/upload/${response.data}`;
console.log("图片名称", rechargeVoucher.value); console.log("图片名称", rechargeVoucher.value);
}; };
// //
@ -709,9 +719,12 @@ const batchAdd = async function () {
console.log("batchData===", batchData.value); console.log("batchData===", batchData.value);
const result = await API.post("/hwjb/recharge/recharge/addmore", {
...batchData.value,
});
const result = await API.post(
"http://39.99.159.73:20090/recharge/recharge/addmore",
{
...batchData.value,
}
);
if (result.code === 0) { if (result.code === 0) {
ElMessage.error("添加失败"); ElMessage.error("添加失败");
@ -756,7 +769,7 @@ const batchSettingInit = function () {
const batchSettingHandleAvatarSuccess = (response, uploadFile) => { const batchSettingHandleAvatarSuccess = (response, uploadFile) => {
batchSettingObj.value.imageUrl = URL.createObjectURL(uploadFile.raw); batchSettingObj.value.imageUrl = URL.createObjectURL(uploadFile.raw);
console.log("图片上传成功", response, uploadFile); console.log("图片上传成功", response, uploadFile);
batchSettingObj.value.rechargeVoucher = `/hwjb/upload/${response.data}`;
batchSettingObj.value.rechargeVoucher = `http://39.99.159.73:20090/upload/${response.data}`;
console.log("图片名称", batchSettingObj.value.rechargeVoucher); console.log("图片名称", batchSettingObj.value.rechargeVoucher);
}; };
// //
@ -862,14 +875,36 @@ onMounted(async function () {
<el-button type="primary" plain @click="batchInit()">批量充值</el-button> <el-button type="primary" plain @click="batchInit()">批量充值</el-button>
</div> </div>
<el-form :model="addRecharge" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px" class="add-form">
<el-form
:model="addRecharge"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 600px"
class="add-form"
>
<el-form-item prop="jwcode" label="精网号"> <el-form-item prop="jwcode" label="精网号">
<el-input v-model="addRecharge.jwcode" style="width: 220px" /> <el-input v-model="addRecharge.jwcode" style="width: 220px" />
<el-button type="primary" @click="getUser(addRecharge.jwcode)" style="margin-left: 20px">查询</el-button>
<el-button
type="primary"
@click="getUser(addRecharge.jwcode)"
style="margin-left: 20px"
>查询</el-button
>
</el-form-item> </el-form-item>
<el-form-item prop="activityId" label="活动名称"> <el-form-item prop="activityId" label="活动名称">
<el-select v-model="addRecharge.activityId" placeholder="请选择" style="width: 300px" @change="handleActivityChange">
<el-option v-for="item in activity" :key="item.value" :label="item.activityName" :value="item.activityId" />
<el-select
v-model="addRecharge.activityId"
placeholder="请选择"
style="width: 300px"
@change="handleActivityChange"
>
<el-option
v-for="item in activity"
:key="item.value"
:label="item.activityName"
:value="item.activityId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="paidGold" label="永久金币"> <el-form-item prop="paidGold" label="永久金币">
@ -880,24 +915,66 @@ onMounted(async function () {
<p></p> <p></p>
</el-form-item> </el-form-item>
<el-form-item prop="rechargeGold" label="充值金额"> <el-form-item prop="rechargeGold" label="充值金额">
<el-select prop="rechargeGold" v-model="Rate" placeholder="货币名称" style="width: 95px; margin-right: 5px">
<el-option v-for="item in currency" :key="item.value" :label="item.currency" :value="item.exchangeRate" />
<el-select
prop="rechargeGold"
v-model="Rate"
placeholder="货币名称"
style="width: 95px; margin-right: 5px"
>
<el-option
v-for="item in currency"
:key="item.value"
:label="item.currency"
:value="item.exchangeRate"
/>
</el-select> </el-select>
<el-input v-model="addRecharge.rechargeGold" style="width: 200px" /> <el-input v-model="addRecharge.rechargeGold" style="width: 200px" />
</el-form-item> </el-form-item>
<el-form-item prop="payWay" label="收款方式"> <el-form-item prop="payWay" label="收款方式">
<el-select v-model="addRecharge.payWay" placeholder="请选择" style="width: 300px">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="addRecharge.payWay"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="rechargeTime" label="交款时间"> <el-form-item prop="rechargeTime" label="交款时间">
<el-date-picker v-model="addRecharge.rechargeTime" type="date" style="width: 300px" />
<el-date-picker
v-model="addRecharge.rechargeTime"
type="date"
style="width: 300px"
/>
</el-form-item> </el-form-item>
<el-form-item prop="rechargeVoucher" label="交款凭证" style="margin-bottom: 5px">
<el-upload action="/hwjb/upload" class="avatar-uploader" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" style="width: 100px; height: 115px">
<img v-if="imageUrl" :src="imageUrl" class="avatar" style="width: 100px; height: 115px" />
<el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px">
<el-form-item
prop="rechargeVoucher"
label="交款凭证"
style="margin-bottom: 5px"
>
<el-upload
action="http://39.99.159.73:20090/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px"
>
<img
v-if="imageUrl"
:src="imageUrl"
class="avatar"
style="width: 100px; height: 115px"
/>
<el-icon
v-else
class="avatar-uploader-icon"
style="width: 100px; height: 100px"
>
<Plus /> <Plus />
</el-icon> </el-icon>
</el-upload> </el-upload>
@ -906,19 +983,41 @@ onMounted(async function () {
</p> </p>
</el-form-item> </el-form-item>
<el-form-item prop="remark" label="备注"> <el-form-item prop="remark" label="备注">
<el-input v-model="addRecharge.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit
type="textarea" />
<el-input
v-model="addRecharge.remark"
style="width: 300px"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
/>
</el-form-item> </el-form-item>
<el-form-item prop="submitter" label="提交人"> <el-form-item prop="submitter" label="提交人">
<el-input style="width: 300px" :value="adminData.name" disabled placeholder="提交人姓名" />
<el-input
style="width: 300px"
:value="adminData.name"
disabled
placeholder="提交人姓名"
/>
</el-form-item> </el-form-item>
<el-button @click="deleteRecharge" style="margin-left: 280px">重置</el-button>
<el-button @click="deleteRecharge" style="margin-left: 280px"
>重置</el-button
>
<el-button type="primary" @click="addBefore"> 提交 </el-button> <el-button type="primary" @click="addBefore"> 提交 </el-button>
</el-form> </el-form>
<!-- 客户信息栏 --> <!-- 客户信息栏 -->
<el-card style="width: 1200px; float: right" class="customer-info" width="3000px">
<el-form :model="user" label-width="auto" style="max-width: 1200px" label-position="left">
<el-card
style="width: 1200px; float: right"
class="customer-info"
width="3000px"
>
<el-form
:model="user"
label-width="auto"
style="max-width: 1200px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text> <el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px"> <el-row style="margin-top: 20px">
<el-col :span="10"> <el-col :span="10">
@ -938,13 +1037,18 @@ onMounted(async function () {
</el-col> </el-col>
<el-col :span="14"> <el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px"> <el-form-item label="当前金币总数" style="width: 500px">
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb !== undefined">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb !== undefined">(永久金币:{{ user.buyJb
}};免费金币:{{
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.buyJb !== undefined"
>{{ user.buyJb + user.free6 + user.free12 + user.coreJb }}</span
>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb !== undefined"
>(永久金币:{{ user.buyJb }};免费金币:{{
user.free6 + user.free12 user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span>
}};任务金币:{{ user.coreJb }})</span
>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
@ -985,26 +1089,58 @@ onMounted(async function () {
</el-form> </el-form>
</el-card> </el-card>
<el-dialog v-model="batchRechargeVisible" title="批量充值" width="1800px" style="height: 700px"
:close-on-click-modal="false">
<el-dialog
v-model="batchRechargeVisible"
title="批量充值"
width="1800px"
style="height: 700px"
:close-on-click-modal="false"
>
<el-row style="margin-bottom: 10px"> <el-row style="margin-bottom: 10px">
<!-- <el-button type="primary" @click="addLine()" style="margin-right: 10px">新增一行</el-button> --> <!-- <el-button type="primary" @click="addLine()" style="margin-right: 10px">新增一行</el-button> -->
<div style="font-weight: bold; font-size: 20px"> <div style="font-weight: bold; font-size: 20px">
<span>添加</span> <span>添加</span>
<el-input-number min="1" style="width: 100px" controls-position="right" v-model="addLineObj"></el-input-number>
<el-input-number
min="1"
style="width: 100px"
controls-position="right"
v-model="addLineObj"
></el-input-number>
<span></span> <span></span>
<el-button type="primary" @click="throttledAddLines" style="margin-right: 10px">添加</el-button>
<el-button
type="primary"
@click="throttledAddLines"
style="margin-right: 10px"
>添加</el-button
>
</div> </div>
<el-button type="warning" @click="batchSettingInit()" style="margin-right: 10px">批量设置</el-button>
<el-button
type="warning"
@click="batchSettingInit()"
style="margin-right: 10px"
>批量设置</el-button
>
<!-- <el-upload :ref="(el) => handleSetUploadRefMap(el)" action="" :http-request="httpExcelRequest" :limit="1" :show-file-list="false" <!-- <el-upload :ref="(el) => handleSetUploadRefMap(el)" action="" :http-request="httpExcelRequest" :limit="1" :show-file-list="false"
class="uploadExcelContent" :data={} style="margin-right: auto"> class="uploadExcelContent" :data={} style="margin-right: auto">
<el-button type="success" >导入jwcode</el-button> <el-button type="success" >导入jwcode</el-button>
</el-upload> --> </el-upload> -->
<el-button type="danger" plain @click="batchDel()" style="margin-right: 10px; width: 130px">批量删除</el-button>
<el-button
type="danger"
plain
@click="batchDel()"
style="margin-right: 10px; width: 130px"
>批量删除</el-button
>
</el-row> </el-row>
<el-row> <el-row>
<el-table v-loading="loading" :data="batchData" border max-height="540px" style="height: 540px"
@selection-change="handleSelectionChangebatch">
<el-table
v-loading="loading"
:data="batchData"
border
max-height="540px"
style="height: 540px"
@selection-change="handleSelectionChangebatch"
>
<el-table-column type="selection" width="50px" /> <el-table-column type="selection" width="50px" />
<el-table-column property="index" label="序号" width="55px"> <el-table-column property="index" label="序号" width="55px">
<template #default="scope"> <template #default="scope">
@ -1013,8 +1149,13 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="jwcode" label="精网号" width="150px"> <el-table-column property="jwcode" label="精网号" width="150px">
<template #default="scope"> <template #default="scope">
<el-input v-if="scope.row.showInput" :class="{ 'is-invalid': scope.row.isInputInvalid }"
@blur="validateInput(scope.row)" v-model="scope.row.jwcode" style="width: 110px" />
<el-input
v-if="scope.row.showInput"
:class="{ 'is-invalid': scope.row.isInputInvalid }"
@blur="validateInput(scope.row)"
v-model="scope.row.jwcode"
style="width: 110px"
/>
<p v-if="scope.row.isInputInvalid" class="error-message"> <p v-if="scope.row.isInputInvalid" class="error-message">
{{ scope.row.inputErrorMessage }} {{ scope.row.inputErrorMessage }}
</p> </p>
@ -1037,10 +1178,20 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="activityName" label="活动名称" width="150px"> <el-table-column property="activityName" label="活动名称" width="150px">
<template #default="scope"> <template #default="scope">
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.activityId"
placeholder="请选择活动名称" @change="changeActivity(scope.row)">
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.activityId"
placeholder="请选择活动名称"
@change="changeActivity(scope.row)"
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
>
</el-option> </el-option>
</el-select> </el-select>
<span v-else>{{ scope.row.activityName }}</span> <span v-else>{{ scope.row.activityName }}</span>
@ -1048,23 +1199,41 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="paidGold" label="永久金币" width="110px"> <el-table-column property="paidGold" label="永久金币" width="110px">
<template #default="scope"> <template #default="scope">
<el-input v-if="scope.row.showInput" v-model="scope.row.paidGold" style="width: 70px"
@change="changePaidGold(scope.row)" />
<el-input
v-if="scope.row.showInput"
v-model="scope.row.paidGold"
style="width: 70px"
@change="changePaidGold(scope.row)"
/>
<span v-else>{{ scope.row.paidGold }}</span> <span v-else>{{ scope.row.paidGold }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="freeGold" label="免费金币" width="110px"> <el-table-column property="freeGold" label="免费金币" width="110px">
<template #default="scope"> <template #default="scope">
<el-input v-if="scope.row.showInput" v-model="scope.row.freeGold" style="width: 70px" />
<el-input
v-if="scope.row.showInput"
v-model="scope.row.freeGold"
style="width: 70px"
/>
<span v-else>{{ scope.row.freeGold }}</span> <span v-else>{{ scope.row.freeGold }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="rate" label="货币名称"> <el-table-column property="rate" label="货币名称">
<template #default="scope"> <template #default="scope">
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.rate" placeholder="请选择币种"
@change="changeRate(scope.row)">
<el-option v-for="item in currency" :key="item.exchangeRate" :label="item.currency"
:value="item.exchangeRate">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.rate"
placeholder="请选择币种"
@change="changeRate(scope.row)"
>
<el-option
v-for="item in currency"
:key="item.exchangeRate"
:label="item.currency"
:value="item.exchangeRate"
>
</el-option> </el-option>
</el-select> </el-select>
<span v-else>{{ scope.row.rate }}</span> <span v-else>{{ scope.row.rate }}</span>
@ -1077,8 +1246,19 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="payWay" label="收款方式" width="130px"> <el-table-column property="payWay" label="收款方式" width="130px">
<template #default="scope"> <template #default="scope">
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.payWay" placeholder="请选择收款方式">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-select
v-if="scope.row.showInput"
filterable
clearable
v-model="scope.row.payWay"
placeholder="请选择收款方式"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
<span v-else>{{ scope.row.payWay }}</span> <span v-else>{{ scope.row.payWay }}</span>
@ -1086,8 +1266,13 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="rechargeTime" label="交款时间" width="150px"> <el-table-column property="rechargeTime" label="交款时间" width="150px">
<template #default="scope"> <template #default="scope">
<el-date-picker v-if="scope.row.showInput" type="date" v-model="scope.row.rechargeTime" style="width: 120px"
placeholder="请选择交款时间">
<el-date-picker
v-if="scope.row.showInput"
type="date"
v-model="scope.row.rechargeTime"
style="width: 120px"
placeholder="请选择交款时间"
>
</el-date-picker> </el-date-picker>
<span v-else>{{ <span v-else>{{
moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss") moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss")
@ -1096,9 +1281,19 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="rechargeVoucher" label="充值凭证"> <el-table-column property="rechargeVoucher" label="充值凭证">
<template #default="scope"> <template #default="scope">
<el-upload action="/hwjb/upload" class="avatar-uploader" :show-file-list="false"
:on-success="handleBatchAvatarSuccess" v-if="scope.row.showInput" @change="changeVoucher(scope.row)">
<img v-if="scope.row.imageUrl" :src="scope.row.imageUrl" class="avatar" />
<el-upload
action="http://39.99.159.73:20090/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleBatchAvatarSuccess"
v-if="scope.row.showInput"
@change="changeVoucher(scope.row)"
>
<img
v-if="scope.row.imageUrl"
:src="scope.row.imageUrl"
class="avatar"
/>
<el-icon v-else class="avatar-uploader-icon"> <el-icon v-else class="avatar-uploader-icon">
<Plus /> <Plus />
</el-icon> </el-icon>
@ -1108,18 +1303,32 @@ onMounted(async function () {
</el-table-column> </el-table-column>
<el-table-column property="remark" label="备注" width="130px"> <el-table-column property="remark" label="备注" width="130px">
<template #default="scope"> <template #default="scope">
<el-input type="textarea" v-if="scope.row.showInput" v-model="scope.row.remark" style="max-width: 90px"
:rows="1" cols="12"></el-input>
<el-input
type="textarea"
v-if="scope.row.showInput"
v-model="scope.row.remark"
style="max-width: 90px"
:rows="1"
cols="12"
></el-input>
<span v-else>{{ scope.row.remark }}</span> <span v-else>{{ scope.row.remark }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column property="submitter" label="提交人"> <el-table-column property="submitter" label="提交人">
<el-input :value="adminData.name" disabled /> <el-input :value="adminData.name" disabled />
</el-table-column> </el-table-column>
<el-table-column fixed="right" prop="operation" label="操作" width="150px">
<el-table-column
fixed="right"
prop="operation"
label="操作"
width="150px"
>
<template #default="scope"> <template #default="scope">
<div style="display: flex"> <div style="display: flex">
<el-popconfirm title="确定将此条信息删除吗?" @confirm="delConfirm">
<el-popconfirm
title="确定将此条信息删除吗?"
@confirm="delConfirm"
>
<template #reference> <template #reference>
<el-button type="danger" text @click="del(scope.row)"> <el-button type="danger" text @click="del(scope.row)">
删除 删除
@ -1132,7 +1341,10 @@ onMounted(async function () {
</el-button> </el-button>
</template> </template>
</el-popconfirm> </el-popconfirm>
<el-popconfirm title="确定将此条信息重置吗?" @confirm="resetConfirm">
<el-popconfirm
title="确定将此条信息重置吗?"
@confirm="resetConfirm"
>
<template #reference> <template #reference>
<el-button type="primary" text @click="reset(scope.row)"> <el-button type="primary" text @click="reset(scope.row)">
重置 重置
@ -1160,55 +1372,114 @@ onMounted(async function () {
</el-row> </el-row>
</el-dialog> </el-dialog>
<el-dialog v-model="batchSettingVisible" title="批量设置" :close-on-click-modal="false" style="width: 550px">
<el-dialog
v-model="batchSettingVisible"
title="批量设置"
:close-on-click-modal="false"
style="width: 550px"
>
<el-form label-position="left" label-width="auto"> <el-form label-position="left" label-width="auto">
<el-form-item label="活动名称"> <el-form-item label="活动名称">
<el-select v-model="batchSettingObj.activityId" placeholder="请选择活动名称" clearable>
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId">
<el-select
v-model="batchSettingObj.activityId"
placeholder="请选择活动名称"
clearable
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="永久金币"> <el-form-item label="永久金币">
<el-input v-model="batchSettingObj.paidGold" placeholder="请输入永久金币"></el-input>
<el-input
v-model="batchSettingObj.paidGold"
placeholder="请输入永久金币"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="免费金币"> <el-form-item label="免费金币">
<el-input v-model="batchSettingObj.freeGold"></el-input> <el-input v-model="batchSettingObj.freeGold"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="充值金额"> <el-form-item label="充值金额">
<div style="display: flex"> <div style="display: flex">
<el-select v-model="batchSettingObj.rate" placeholder="请选择币种" style="width: 120px; margin-right: 10px"
clearable>
<el-option v-for="item in currency" :key="item.exchangeRate" :label="item.currency"
:value="item.exchangeRate"></el-option>
<el-select
v-model="batchSettingObj.rate"
placeholder="请选择币种"
style="width: 120px; margin-right: 10px"
clearable
>
<el-option
v-for="item in currency"
:key="item.exchangeRate"
:label="item.currency"
:value="item.exchangeRate"
></el-option>
</el-select> </el-select>
<el-input v-model="batchSettingObj.rechargeGold" placeholder="请输入充值金额"></el-input>
<el-input
v-model="batchSettingObj.rechargeGold"
placeholder="请输入充值金额"
></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item prop="payWay" label="收款方式"> <el-form-item prop="payWay" label="收款方式">
<el-select v-model="batchSettingObj.payWay" placeholder="请选择收款方式" clearable>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-select
v-model="batchSettingObj.payWay"
placeholder="请选择收款方式"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="rechargeTime" label="交款时间"> <el-form-item prop="rechargeTime" label="交款时间">
<el-date-picker v-model="batchSettingObj.rechargeTime" type="date" placeholder="请选择交款时间"></el-date-picker>
<el-date-picker
v-model="batchSettingObj.rechargeTime"
type="date"
placeholder="请选择交款时间"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item prop="rechargeVoucher" label="交款凭证"> <el-form-item prop="rechargeVoucher" label="交款凭证">
<el-upload action="/hwjb/upload" class="avatar-uploader" :show-file-list="false"
:on-success="batchSettingHandleAvatarSuccess" :before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px">
<img v-if="batchSettingObj.imageUrl" :src="batchSettingObj.imageUrl" class="avatar"
style="width: 100px; height: 115px" />
<el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px">
<el-upload
action="http://39.99.159.73:20090/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="batchSettingHandleAvatarSuccess"
:before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px"
>
<img
v-if="batchSettingObj.imageUrl"
:src="batchSettingObj.imageUrl"
class="avatar"
style="width: 100px; height: 115px"
/>
<el-icon
v-else
class="avatar-uploader-icon"
style="width: 100px; height: 100px"
>
<Plus /> <Plus />
</el-icon> </el-icon>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item prop="remark" label="备注"> <el-form-item prop="remark" label="备注">
<el-input type="textarea" v-model="batchSettingObj.remark" placeholder="请输入备注" />
<el-input
type="textarea"
v-model="batchSettingObj.remark"
placeholder="请输入备注"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-button @click="cancelBatchSetting()" style="margin-left: 370px">取消</el-button>
<el-button @click="cancelBatchSetting()" style="margin-left: 370px"
>取消</el-button
>
<el-button type="primary" @click="batchSettingConfirm()"> 确认 </el-button> <el-button type="primary" @click="batchSettingConfirm()"> 确认 </el-button>
</el-dialog> </el-dialog>
</template> </template>

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

@ -11,7 +11,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -89,8 +89,8 @@ const delObj = ref({});
const get = async function (val) { const get = async function (val) {
try { try {
// //
if(adminData.value.area!="总部"){
rechargeVo.value.area=adminData.value.area;
if (adminData.value.area != "总部") {
rechargeVo.value.area = adminData.value.area;
} }
// //
if (typeof val === "number") { if (typeof val === "number") {
@ -109,7 +109,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/recharge",
"http://39.99.159.73:20090/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } } { ...getObj.value, rechargeVo: { ...rechargeVo.value } }
); );
@ -237,7 +237,7 @@ const getActivity = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{} {}
); );
@ -257,7 +257,7 @@ const getArea = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{} {}
); );
// //
@ -281,7 +281,7 @@ const delConfirm = async function () {
try { try {
console.log("delObj2", delObj.value); console.log("delObj2", delObj.value);
const result = await API.post( const result = await API.post(
"/hwjb/recharge/recharge/edit",
"http://39.99.159.73:20090/recharge/recharge/edit",
delObj.value delObj.value
); );
console.log("删除成功", result); console.log("删除成功", result);
@ -375,7 +375,7 @@ onMounted(async function () {
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element" v-if="adminData.area=='总部'">
<div class="head-card-element" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select <el-select
v-model="rechargeVo.area" v-model="rechargeVo.area"

167
gold-system/src/views/recharge/allRecharge.vue

@ -12,7 +12,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -105,7 +105,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/recharge",
"http://39.99.159.73:20090/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } } { ...getObj.value, rechargeVo: { ...rechargeVo.value } }
); );
@ -233,7 +233,7 @@ const getActivity = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{} {}
); );
@ -253,7 +253,7 @@ const getArea = async function () {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{} {}
); );
// //
@ -313,26 +313,57 @@ onMounted(async function () {
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">活动名称</el-text> <el-text class="mx-1" size="large">活动名称</el-text>
<el-select v-model="rechargeVo.activityId" placeholder="请选择活动名称" size="large" style="width: 240px"
clearable>
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName"
:value="item.activityId" />
<el-select
v-model="rechargeVo.activityId"
placeholder="请选择活动名称"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in activity"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">支付方式</el-text> <el-text class="mx-1" size="large">支付方式</el-text>
<el-select v-model="rechargeVo.payWay" placeholder="请选择支付方式" size="large" style="width: 240px" clearable>
<el-option v-for="item in payWay" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="rechargeVo.payWay"
placeholder="请选择支付方式"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in payWay"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="head-card-element" v-if="adminData.area == '总部'"> <div class="head-card-element" v-if="adminData.area == '总部'">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="rechargeVo.area" placeholder="请选择所属地区" size="large" style="width: 240px" clearable>
<el-option v-for="item in area" :key="item" :label="item" :value="item" />
<el-select
v-model="rechargeVo.area"
placeholder="请选择所属地区"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item"
:label="item"
:value="item"
/>
</el-select> </el-select>
</div> </div>
</el-col> </el-col>
@ -341,9 +372,16 @@ onMounted(async function () {
<el-col :span="21"> <el-col :span="21">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">充值时间</el-text> <el-text class="mx-1" size="large">充值时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" />
<el-button style="margin-left: 10px" @click="getToday()"></el-button>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
<el-button style="margin-left: 10px" @click="getToday()"
></el-button
>
<el-button @click="getYesterday()"></el-button> <el-button @click="getYesterday()"></el-button>
<el-button @click="get7Days()">近7天</el-button> <el-button @click="get7Days()">近7天</el-button>
</div> </div>
@ -361,7 +399,12 @@ onMounted(async function () {
<el-row> <el-row>
<el-col> <el-col>
<el-card> <el-card>
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
<el-tabs
v-model="activeName"
type="card"
class="demo-tabs"
@tab-click="handleClick"
>
<el-tab-pane label="全部" name="all"></el-tab-pane> <el-tab-pane label="全部" name="all"></el-tab-pane>
<el-tab-pane label="待审核" name="wait"></el-tab-pane> <el-tab-pane label="待审核" name="wait"></el-tab-pane>
<el-tab-pane label="已通过" name="pass"></el-tab-pane> <el-tab-pane label="已通过" name="pass"></el-tab-pane>
@ -369,7 +412,12 @@ onMounted(async function () {
</el-tabs> </el-tabs>
<div> <div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"> <el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -379,17 +427,44 @@ onMounted(async function () {
<el-table-column prop="username" label="姓名" width="100px" /> <el-table-column prop="username" label="姓名" width="100px" />
<el-table-column prop="jwcode" label="精网号" width="130px" /> <el-table-column prop="jwcode" label="精网号" width="130px" />
<el-table-column prop="area" label="所属地区" width="100px" /> <el-table-column prop="area" label="所属地区" width="100px" />
<el-table-column prop="activityName" label="活动名称" width="150px" />
<el-table-column prop="paidGold" label="充值金额" width="120px" sortable />
<el-table-column prop="rechargeWay" label="充值方式" width="100px" />
<el-table-column
prop="activityName"
label="活动名称"
width="150px"
/>
<el-table-column
prop="paidGold"
label="充值金额"
width="120px"
sortable
/>
<el-table-column
prop="rechargeWay"
label="充值方式"
width="100px"
/>
<el-table-column prop="paidGold" label="永久金币" width="100px" /> <el-table-column prop="paidGold" label="永久金币" width="100px" />
<el-table-column prop="freeGold" label="免费金币" width="100px" /> <el-table-column prop="freeGold" label="免费金币" width="100px" />
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip />
<el-table-column
prop="remark"
label="备注"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="payWay" label="支付方式" width="100px" /> <el-table-column prop="payWay" label="支付方式" width="100px" />
<el-table-column prop="rechargeVoucher" label="支付凭证" width="150px">
<el-table-column
prop="rechargeVoucher"
label="支付凭证"
width="150px"
>
<template #default="scope"> <template #default="scope">
<el-image :preview-src-list="[scope.row.rechargeVoucher]" preview-teleported="true"
:src="scope.row.rechargeVoucher" alt="凭证" style="width: 50px; height: 50px" />
<el-image
:preview-src-list="[scope.row.rechargeVoucher]"
preview-teleported="true"
:src="scope.row.rechargeVoucher"
alt="凭证"
style="width: 50px; height: 50px"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="name" label="提交人" width="100px" /> <el-table-column prop="name" label="提交人" width="100px" />
@ -415,7 +490,12 @@ onMounted(async function () {
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reson" label="驳回理由" width="200px" show-overflow-tooltip />
<el-table-column
prop="reson"
label="驳回理由"
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="rechargeTime" label="交款时间" width="200px"> <el-table-column prop="rechargeTime" label="交款时间" width="200px">
<template #default="scope"> <template #default="scope">
{{ {{
@ -429,17 +509,42 @@ onMounted(async function () {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div> <div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select> </el-select>
<div></div> <div></div>
</el-pagination> </el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div> <div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div> <div></div>
</el-pagination> </el-pagination>
</div> </div>

131
gold-system/src/views/refund/addRefund.vue

@ -16,7 +16,10 @@ const addRe = ref({
const adminData = ref({}); const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post("/hwjb/admin/userinfo", {});
const result = await API.post(
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result; adminData.value = result;
addRefund.value.adminId = adminData.value.adminId; addRefund.value.adminId = adminData.value.adminId;
console.log("请求成功", result); console.log("请求成功", result);
@ -51,7 +54,10 @@ const cancel = function () {
const add = async function () { const add = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/refund/add", addRefund.value);
const result = await API.post(
"http://39.99.159.73:20090/refund/add",
addRefund.value
);
if (result.code === 0) { if (result.code === 0) {
ElMessage.error(result.msg); ElMessage.error(result.msg);
return; return;
@ -104,7 +110,7 @@ const addBefore = () => {
// //
// //
const Ref = ref(null); const Ref = ref(null);
const startChange = (val) => { };
const startChange = (val) => {};
const rules = reactive({ const rules = reactive({
jwcode: [{ required: true, message: "请输入精网号", trigger: "blur" }], jwcode: [{ required: true, message: "请输入精网号", trigger: "blur" }],
@ -136,11 +142,12 @@ const user = ref({
const getUser = async function (jwcode) { const getUser = async function (jwcode) {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/user",
{ jwcode: jwcode, area: adminData.value.area });
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
area: adminData.value.area,
});
console.log("请求成功", result); console.log("请求成功", result);
if (result.code === 0) { if (result.code === 0) {
ElMessage.error(result.msg); ElMessage.error(result.msg);
} else { } else {
@ -173,7 +180,7 @@ const AAA = computed(() => {
return addRefund.value.jwcode; return addRefund.value.jwcode;
}); });
watch(AAA, (newVal) => { });
watch(AAA, (newVal) => {});
// 退 // 退
const refundType = [ const refundType = [
@ -193,8 +200,9 @@ const getGoods = async function (jwcode) {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/consume/getDeatil",
{ jwcode: jwcode, area: adminData.value.area });
"http://39.99.159.73:20090/consume/getDeatil",
{ jwcode: jwcode, area: adminData.value.area }
);
console.log("请求成功", result); console.log("请求成功", result);
if (result.code === 0) { if (result.code === 0) {
@ -233,7 +241,7 @@ const getProductByOrderCode = async function (item) {
try { try {
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/refund/searchByOrderCode?orderCode=" + item,
"http://39.99.159.73:20090/refund/searchByOrderCode?orderCode=" + item,
{} {}
); );
addRefund.value.contactId = result.data.detailyId; addRefund.value.contactId = result.data.detailyId;
@ -272,14 +280,39 @@ onMounted(async function () {
<template> <template>
<div style="font-weight: bold">新增退款</div> <div style="font-weight: bold">新增退款</div>
<el-form :model="addRefund" ref="Ref" :rules="rules" label-width="auto" style="max-width: 750px" class="form-style">
<el-form
:model="addRefund"
ref="Ref"
:rules="rules"
label-width="auto"
style="max-width: 750px"
class="form-style"
>
<el-form-item prop="jwcode" label="精网号"> <el-form-item prop="jwcode" label="精网号">
<el-input v-model="addRefund.jwcode" style="width: 220px" @change="getGoods(addRefund.jwcode)" />
<el-button type="primary" @click="getUser(addRefund.jwcode)" style="margin-left: 20px">查询</el-button>
<el-input
v-model="addRefund.jwcode"
style="width: 220px"
@change="getGoods(addRefund.jwcode)"
/>
<el-button
type="primary"
@click="getUser(addRefund.jwcode)"
style="margin-left: 20px"
>查询</el-button
>
</el-form-item> </el-form-item>
<el-form-item prop="refundType" label="退款类型"> <el-form-item prop="refundType" label="退款类型">
<el-select v-model="addRefund.refundType" placeholder="请选择" style="width: 300px">
<el-option v-for="item in refundType" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="addRefund.refundType"
placeholder="请选择"
style="width: 300px"
>
<el-option
v-for="item in refundType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="orderCode" label="商品名"> <el-form-item prop="orderCode" label="商品名">
@ -307,18 +340,31 @@ onMounted(async function () {
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<el-form-item prop="rechargeCoin" label="永久金币" style="float: left"> <el-form-item prop="rechargeCoin" label="永久金币" style="float: left">
<el-input v-model="addRefund.rechargeCoin" style="width: 100px"
:disabled="addRe.typeR === '0' ? true : false" />
<el-input
v-model="addRefund.rechargeCoin"
style="width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
/>
<p></p> <p></p>
</el-form-item> </el-form-item>
<el-form-item prop="freeCoin" label="免费金币" style="margin-left: -20px; float: left">
<el-input v-model="addRefund.freeCoin" style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false" />
<el-form-item
prop="freeCoin"
label="免费金币"
style="margin-left: -20px; float: left"
>
<el-input
v-model="addRefund.freeCoin"
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
/>
<p></p> <p></p>
</el-form-item> </el-form-item>
<el-form-item prop="taskCoin" label="任务金币" style="margin-left: -20px"> <el-form-item prop="taskCoin" label="任务金币" style="margin-left: -20px">
<el-input v-model="addRefund.taskCoin" style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false" />
<el-input
v-model="addRefund.taskCoin"
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
/>
<p></p> <p></p>
</el-form-item> </el-form-item>
</div> </div>
@ -327,11 +373,22 @@ onMounted(async function () {
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="remark" label="备注"> <el-form-item prop="remark" label="备注">
<el-input v-model="addRefund.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit
type="textarea" />
<el-input
v-model="addRefund.remark"
style="width: 300px"
:rows="2"
maxlength="100"
show-word-limit
type="textarea"
/>
</el-form-item> </el-form-item>
<el-form-item prop="commitName" label="提交人"> <el-form-item prop="commitName" label="提交人">
<el-input style="width: 300px" :value="adminData.name" disabled placeholder="提交人姓名" />
<el-input
style="width: 300px"
:value="adminData.name"
disabled
placeholder="提交人姓名"
/>
</el-form-item> </el-form-item>
<el-button @click="cancel()" style="margin-left: 280px">重置</el-button> <el-button @click="cancel()" style="margin-left: 280px">重置</el-button>
<el-button type="primary" @click="addBefore"> 提交 </el-button> <el-button type="primary" @click="addBefore"> 提交 </el-button>
@ -339,7 +396,12 @@ onMounted(async function () {
<!-- 客户信息栏 --> <!-- 客户信息栏 -->
<el-card style="width: 850px; float: right" class="customer-info"> <el-card style="width: 850px; float: right" class="customer-info">
<el-form :model="user" label-width="auto" style="max-width: 1000px" label-position="left">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text> <el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px"> <el-row style="margin-top: 20px">
<el-col :span="10"> <el-col :span="10">
@ -359,13 +421,18 @@ onMounted(async function () {
</el-col> </el-col>
<el-col :span="14"> <el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px"> <el-form-item label="当前金币总数" style="width: 500px">
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb !== undefined">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb !== undefined">(永久金币:{{ user.buyJb
}};免费金币:{{
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.buyJb !== undefined"
>{{ user.buyJb + user.free6 + user.free12 + user.coreJb }}</span
>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb !== undefined"
>(永久金币:{{ user.buyJb }};免费金币:{{
user.free6 + user.free12 user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span>
}};任务金币:{{ user.coreJb }})</span
>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">

14
gold-system/src/views/refund/allRefund.vue

@ -12,7 +12,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -86,7 +86,7 @@ const get = async function (val) {
} }
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post("/hwjb/refund/search", {
const result = await API.post("http://39.99.159.73:20090/refund/search", {
...getObj.value, ...getObj.value,
detail: { ...detail.value }, detail: { ...detail.value },
}); });
@ -215,7 +215,10 @@ const handleClick = function (tab, event) {
const getArea = async function () { const getArea = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/recharge/user/search", {});
const result = await API.post(
"http://39.99.159.73:20090/recharge/user/search",
{}
);
// //
console.log("请求成功", result); console.log("请求成功", result);
// //
@ -239,7 +242,8 @@ const delConfirm = async function () {
console.log("delObj", delObj.value); console.log("delObj", delObj.value);
// POST // POST
const result = await API.post( const result = await API.post(
"/hwjb/refund/softDelete?detailId=" + delObj.value.detailId,
"http://39.99.159.73:20090/refund/softDelete?detailId=" +
delObj.value.detailId,
{} {}
); );
// //
@ -257,7 +261,7 @@ const goods = ref([]);
const getGoods = async function () { const getGoods = async function () {
try { try {
// POST // POST
const result = await API.post("/hwjb/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
// //
console.log("请求成功", result); console.log("请求成功", result);
// //

14
gold-system/src/views/usergold/index.vue

@ -13,7 +13,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -63,9 +63,9 @@ const updateType = [
label: "退款", label: "退款",
}, },
{ {
value:"3",
label:"其他"
}
value: "3",
label: "其他",
},
]; ];
// // // //
@ -98,11 +98,11 @@ const get = async function (val) {
} }
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post("/hwjb/detailY", {
const result = await API.post("http://39.99.159.73:20090/detailY", {
...getObj.value, ...getObj.value,
detailY: { ...detailY.value }, detailY: { ...detailY.value },
}); });
const result2 = await API.post("/hwjb/detailY", {
const result2 = await API.post("http://39.99.159.73:20090/detailY", {
...getAllObj.value, ...getAllObj.value,
detailY: { ...detailY.value }, detailY: { ...detailY.value },
}); });
@ -293,7 +293,7 @@ const areyour = async function () {
try { try {
loading.value = true; loading.value = true;
const result = await API.post( const result = await API.post(
"/hwjb/detailY/searchAll",
"http://39.99.159.73:20090/detailY/searchAll",
{ ...putExcel.value } { ...putExcel.value }
); );
excelInfo.value = result.data; excelInfo.value = result.data;

77
gold-system/src/views/usergoldInfo/index.vue

@ -13,7 +13,7 @@ const adminData = ref({});
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API.post( const result = await API.post(
"/hwjb/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{} {}
); );
adminData.value = result; adminData.value = result;
@ -92,11 +92,11 @@ const get = async function (val) {
} }
console.log("搜索参数", getObj.value); console.log("搜索参数", getObj.value);
// POST // POST
const result = await API.post("/hwjb/detailY/select", {
const result = await API.post("http://39.99.159.73:20090/detailY/select", {
...getObj.value, ...getObj.value,
detailYgold: { ...detailY.value }, detailYgold: { ...detailY.value },
}); });
// const result2 = await API.post("/hwjb/detailY/select", {
// const result2 = await API.post("http://39.99.159.73:20090/detailY/select", {
// ...getAllObj.value, // ...getAllObj.value,
// detailY: { ...detailY.value }, // detailY: { ...detailY.value },
// }); // });
@ -197,12 +197,31 @@ onMounted(async function () {
<div class="head-card"> <div class="head-card">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text> <el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="detailY.jwcode" style="width: 240px" placeholder="请输入精网号" clearable />
<el-input
v-model="detailY.jwcode"
style="width: 240px"
placeholder="请输入精网号"
clearable
/>
</div> </div>
<div class="head-card-element" style="margin-left: 50px" v-if="adminData.area == '总部'">
<div
class="head-card-element"
style="margin-left: 50px"
v-if="adminData.area == '总部'"
>
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
<el-select v-model="detailY.area" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-option v-for="item in area" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="detailY.area"
placeholder="请选择所属地区"
style="width: 240px"
clearable
>
<el-option
v-for="item in area"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
@ -219,7 +238,12 @@ onMounted(async function () {
<el-card> <el-card>
<div> <div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%"> <el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
@ -266,17 +290,42 @@ onMounted(async function () {
<!-- 分页 --> <!-- 分页 -->
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div> <div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select> </el-select>
<div></div> <div></div>
</el-pagination> </el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div> <div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div> <div></div>
</el-pagination> </el-pagination>
</div> </div>

45
gold-system/src/views/workspace/index.vue

@ -89,10 +89,22 @@ const get = async function () {
getAreaRank(); getAreaRank();
getMiddleBar(); getMiddleBar();
// POST // POST
const result1 = await API.post("/hwjb/statistics/getSumCoin", {});
const result2 = await API.post("/hwjb/statistics/a", {});
const result3 = await API.post("/hwjb/statistics/getYearConsumeCoin", {});
const result4 = await API.post("/hwjb/statistics/getDayConsumeCoin", {});
const result1 = await API.post(
"http://39.99.159.73:20090/statistics/getSumCoin",
{}
);
const result2 = await API.post(
"http://39.99.159.73:20090/statistics/a",
{}
);
const result3 = await API.post(
"http://39.99.159.73:20090/statistics/getYearConsumeCoin",
{}
);
const result4 = await API.post(
"http://39.99.159.73:20090/statistics/getDayConsumeCoin",
{}
);
// const result5 = await API.post( // const result5 = await API.post(
// "http://192.168.8.93:10010/statistics/getMediumAreaPay", // "http://192.168.8.93:10010/statistics/getMediumAreaPay",
// {} // {}
@ -110,7 +122,10 @@ const get = async function () {
// "http://192.168.8.93:10010/statistics/getMediuConsumeCoin", // "http://192.168.8.93:10010/statistics/getMediuConsumeCoin",
// {} // {}
// ); // );
const result9 = await API.post("/hwjb/statistics/b", {});
const result9 = await API.post(
"http://39.99.159.73:20090/statistics/b",
{}
);
// //
getSumCoin.value = result1.data; getSumCoin.value = result1.data;
@ -353,7 +368,7 @@ const get = async function () {
// //
const getMiddleBar = async function () { const getMiddleBar = async function () {
const result = await API.post( const result = await API.post(
"/hwjb/statistics/getCoinTime",
"http://39.99.159.73:20090/statistics/getCoinTime",
getMiddleBarObj.value getMiddleBarObj.value
); );
@ -555,7 +570,7 @@ const getMiddleBar = async function () {
// //
const getAreaRank = async function () { const getAreaRank = async function () {
const result = await API.post( const result = await API.post(
"/hwjb/statistics/getMee",
"http://39.99.159.73:20090/statistics/getMee",
getAreaRankObj.value getAreaRankObj.value
); );
@ -1354,9 +1369,19 @@ onMounted(async function () {
<div style="width: 30%"> <div style="width: 30%">
<div class="ranking-header"> <div class="ranking-header">
<span style="width: 150px">地区金币充值排名</span> <span style="width: 150px">地区金币充值排名</span>
<el-select v-model="goldType" placeholder="请选择金币类型" size="small" style="margin-left: auto;width: 25%"
@change="changeGoldType">
<el-option v-for="item in gold" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="goldType"
placeholder="请选择金币类型"
size="small"
style="margin-left: auto; width: 25%"
@change="changeGoldType"
>
<el-option
v-for="item in gold"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
<div v-loading="areaRankLoading"> <div v-loading="areaRankLoading">

Loading…
Cancel
Save