Browse Source

10.10

zhangyong/milestone-20250913-现金管理
ZhangYong 2 months ago
parent
commit
9404923330
  1. 122
      src/components/MoneyManage/ProductSelect.vue
  2. 27
      src/router/index.js
  3. 10
      src/utils/menuUtils.js

122
src/components/MoneyManage/ProductSelect.vue

@ -36,17 +36,36 @@
</el-icon>
</span>
</div>
<div class="productOption">
<div class="productOption" v-show="productisOpen">
<div class="productOption" v-show="productisOpen">
<hr class="line">
<div class="marketprodut">
</div>
<div class="ai">
<div class="checktxt">AI机构探测神器</div>
<!-- 全选框 -->
<el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">
全选
</el-checkbox>
<el-checkbox-group v-model="selectedSoftwareItems" @change="handleCheckedItemsChange">
<el-checkbox label="软件A" size="large" />
<el-checkbox label="软件B" size="large" />
<el-checkbox label="软件C" size="large" />
<hr class="line">
<el-checkbox-group v-model="selectedSoftwareItems" :max="1">
<el-checkbox v-for="ai in AIProduct" :key="ai" :label="ai" :value="ai">
{{ ai }}
</el-checkbox>
</el-checkbox-group>
</div>
<div class="ai">
<div class="checktxt">超级机构探测神器</div>
<hr class="line">
<el-checkbox-group v-model="selectedSoftwareItems" :max="1">
<el-checkbox v-for="ai in superProduct" :key="ai" :label="ai" :value="ai">
{{ ai }}
</el-checkbox>
</el-checkbox-group>
</div>
<div class="ai">
<div class="checktxt">静态信息费</div>
<hr class="line">
<el-checkbox-group v-model="selectedSoftwareItems" :max="1">
<el-checkbox v-for="ai in InfoFee" :key="ai" :label="ai" :value="ai">
{{ ai }}
</el-checkbox>
</el-checkbox-group>
</div>
</div>
@ -55,7 +74,7 @@
</div>
</template>
<script setup>
import { ref, watch } from 'vue';
import { ref, watch, onMounted } from 'vue';
import { ArrowDown } from '@element-plus/icons-vue';
const searchData = ref('')
@ -90,23 +109,21 @@ const isCoinRechargeChecked = ref(false)
const selectedSoftwareItems = ref([])
const selectedValue = ref([])
//
const checkAll = ref(false)
const isIndeterminate = ref(false)
const softwareItems = ['软件A', '软件B', '软件C']
const AIProduct = ['AI机构追踪', 'AI机构出击 ', 'AI机构资金', 'AI机活跃度']
const superProduct = ['超级机构透视', '超级机构伏击 ', '超级机构猎杀', '超级机构脉搏', '超级机构罗盘']
const InfoFee = ['静态信息费']
//
watch(isCoinRechargeChecked, (newVal) => {
if (newVal) {
selectedSoftwareItems.value = [];
selectedValue.value = newVal ? ['金币充值'] : [];
//
checkAll.value = false;
isIndeterminate.value = false;
} else {
selectedValue.value = selectedSoftwareItems.value.length > 0 ? selectedSoftwareItems.value : [];
}
emit('update:modelValue', selectedValue.value);
selectedItem.value = selectedValue.value[0] || '';
});
//
@ -118,23 +135,31 @@ watch(selectedSoftwareItems, (newVals) => {
selectedValue.value = isCoinRechargeChecked.value ? ['金币充值'] : [];
}
emit('update:modelValue', selectedValue.value);
selectedItem.value = selectedValue.value[0] || '';
});
//
const handleCheckAllChange = (val) => {
selectedSoftwareItems.value = val ? softwareItems : []
isIndeterminate.value = false
}
const handleCheckedItemsChange = (value) => {
const checkedCount = value.length
checkAll.value = checkedCount === softwareItems.length
isIndeterminate.value = checkedCount > 0 && checkedCount < softwareItems.length
}
onMounted(() => {
const initValue = props.modelValue;
if (initValue.length === 0) return;
//
if (initValue[0] === '金币充值') {
isCoinRechargeChecked.value = true;
selectedValue.value = ['金币充值'];
}
// selectedSoftwareItems
else {
selectedSoftwareItems.value = initValue;
selectedValue.value = initValue;
}
//
selectedItem.value = selectedValue.value[0] || '';
});
</script>
<style scoped lang="scss">
.productContent {
position: relative;
width: 268px;
width: 450px;
font-family: 'Arial', sans-serif;
}
@ -172,7 +197,7 @@ const handleCheckedItemsChange = (value) => {
position: absolute;
top: 100%;
left: 0;
width: 130%;
width: 160%;
max-height: 600px;
min-height: 200px;
display: flex;
@ -221,5 +246,42 @@ const handleCheckedItemsChange = (value) => {
.coinselect.active .coin-arrow {
transform: rotate(-90deg);
}
.product {
width: 100%;
.line {
display: flex;
height: 1px;
padding: 0 16px;
align-items: flex-start;
align-content: flex-start;
gap: 8px 60px;
flex-shrink: 0;
align-self: stretch;
flex-wrap: wrap;
border-top: 1px solid #7E91FF;
}
.productOption {
width: 100%;
.ai {
width: 100%;
.checktxt {
color: #5870ff;
font-family: "PingFang SC";
font-size: 13px;
font-style: normal;
font-weight: 700;
line-height: 22px;
margin: 10px 20px;
}
}
}
}
}
</style>

27
src/router/index.js

@ -308,8 +308,31 @@ const routes = [
{
path: 'receiveDetail',
name: "receiveDetail",
component: () => import("../views/moneyManage/receiveDetail/receiveDetail.vue"),
meta: { permissionId: 74 }
// component: () => import("../views/moneyManage/receiveDetail/receiveDetail.vue"),
meta: { permissionId: 74 },
children:[
// 客服页面
{
path: 'receiveService',
name: "receiveService",
component: () => import("../views/moneyManage/receiveDetail/receiveDetail.vue"),
meta: { permissionId: 75 }
},
// 地区财务及地区负责人页面
{
path: 'receiveArea',
name: "receiveArea",
component: () => import("../views/moneyManage/receiveDetail/receiveDetail.vue"),
meta: { permissionId: 75 }
},
//总部管理员及财务
{
path: 'receiveHead',
name: "receiveHead",
component: () => import("../views/moneyManage/receiveDetail/receiveDetail.vue"),
meta: { permissionId: 75 }
},
]
},
// 退款明细
{

10
src/utils/menuUtils.js

@ -79,13 +79,13 @@ export const getRoutePath = (menu) => {
'用户管理': '/permissions/userPermission',
'角色管理': '/permissions/rolePermission',
'收款明细': '/moneyManage/receiveMoney',
'收款-地区客服':'/moneyManage/receiveMoney/receiveService',
'收款-地区财务/负责人':'/moneyManage/receiveMoney/receiveArea',
'收款-总部财务/管理员':'/moneyManage/receiveMoney/receiveHeader',
'收款明细': '/moneyManage/receiveDetail',
'收款-地区客服':'/moneyManage/receiveDetail/receiveService',
'收款-地区财务/负责人':'/moneyManage/receiveDetail/receiveArea',
'收款-总部财务/管理员':'/moneyManage/receiveDetail/receiveHead',
'退款明细': '/moneyManage/refundDetail',
'退款-地区客服':'/moneyManage/refundDetail/refundService',
'退款-地区客服':'/moneyManage/refundDetail/service',
'退款-地区财务':'/moneyManage/refundDetail/refundFinance',
'退款-地区负责人':'/moneyManage/refundDetail/refundCharge',
'退款-总部财务/管理员':'/moneyManage/refundDetail/refundHeader',

Loading…
Cancel
Save