diff --git a/src/views/framework/architecture/azjg5.vue b/src/views/framework/architecture/azjg5.vue index 6404678..422b408 100644 --- a/src/views/framework/architecture/azjg5.vue +++ b/src/views/framework/architecture/azjg5.vue @@ -50,12 +50,12 @@
- +
+
+
+
{{ item.gradeName }}
+
+
@@ -74,159 +74,6 @@
- -
-
-
-
- - -
-
-
-
{{ '会员编号' }}
-
{{ treeData.memberCode }}
-
-
-
{{ '会员姓名' }}
-
{{ treeData.name }}
-
-
-
安置部门
-
{{ `第${treeData.placeDept}部门` }}
-
-
-
{{ '支付日期' }}
-
{{ treeData.payDate }}
-
-
-
- -
{{ '结算国家' }}
-
-
-
-
-
{{ '业绩' }}({{ isLocals() }})
-
{{ '真实新增' }}
-
首购新增
-
复购新增
-
真实累计
-
首购累计
-
复购累计
-
首购结余
-
复购结余
- -
-
-
左区
-
{{ treeData.leftRealNewPv }}
-
{{ treeData.leftFirstPurchaseAdd }}
-
- {{ treeData.leftRepeatPurchaseAdd }} -
-
{{ treeData.leftRealTotal }}
-
{{ treeData.leftFirstTotal }}
-
- {{ treeData.leftRepeatPurchaseTotal }} -
-
{{ treeData.leftFirstSurplus }}
-
- {{ treeData.leftRepeatPurchaseSurplus }} -
- -
-
-
右区
-
{{ treeData.rightRealNewPv }}
-
- {{ treeData.rightFirstPurchaseAdd }} -
-
- {{ treeData.rightRepeatPurchaseAdd }} -
-
{{ treeData.rightRealTotal }}
-
{{ treeData.rightFirstTotal }}
-
- {{ treeData.rightRepeatPurchaseTotal }} -
-
{{ treeData.rightFirstSurplus }}
-
- {{ treeData.rightRepeatPurchaseSurplus }} -
- -
-
-
-
-
下载图片
-
复制文字
- -
-
-
-
-
{{ '会员编号' }}:{{ treeData.memberCode }}
-
{{ '会员姓名' }}:{{ treeData.name }}
-
{{ '支付日期' }}:{{ treeData.payDate }}
-
{{ '业绩' }}({{ isLocals() }})  左区  右区
-
- 真实新增  {{ treeData.leftRealNewPv }}  {{ - treeData.rightRealNewPv - }} -
-
- 首购新增  {{ treeData.leftFirstPurchaseAdd }}  {{ - treeData.rightFirstPurchaseAdd - }} -
-
- 复购新增{{ treeData.leftRepeatPurchaseAdd }}   - {{ treeData.rightRepeatPurchaseAdd }} -
-
- 真实累计{{ treeData.leftRealTotal }}  {{ - treeData.rightRealTotal - }} -
-
- 首购累计{{ treeData.leftFirstTotal }}  {{ - treeData.rightFirstTotal - }} -
-
- 复购累计 {{ treeData.leftRepeatPurchaseTotal }}  {{ - treeData.rightRepeatPurchaseTotal - }} -
-
- 首购结余{{ treeData.leftFirstSurplus }}  {{ - treeData.rightFirstSurplus - }} -
-
- 复购结余 {{ treeData.leftRepeatPurchaseSurplus }}  {{ - treeData.rightRepeatPurchaseSurplus - }} -
-
@@ -241,37 +88,19 @@ import { } from '@/api/archityecture' import { isLocals } from '../../../utils/numberToCurrency' import TopMemberSelect from './components/top-member-select.vue' +import tabBarMixin from './mixins/tab-bar' +import { getgradeRanglist } from '@/api/level' export default { name: 'Azjg5', components: { topBar, TopMemberSelect }, + mixins: [tabBarMixin], data() { return { moren: 'azjg5', - topList: [ - { - name: '方案一', - path: 'azjg' - }, - { - name: '方案二', - path: 'azjg2' - }, - { - name: '方案三', - path: 'azjg3' - }, - { - name: '方案四', - path: 'azjg4' - }, - { - name: '方案五', - path: 'azjg5' - } - ], + queryParams: { memberSettlePeriodId: '', // 期数 memberCode: '', // 会员编号 @@ -283,7 +112,7 @@ export default { treeData: {}, ifShow: false, memberSettlePeriodList: [], // 期数 - + rangeList: [], // 等级列表 cantz: 1, // 0不可拖拽,1可拖拽 scale: 1, loading: false @@ -291,9 +120,19 @@ export default { }, created() { // this.getSearch() + this.getRangeList() this.getAvarerInfo() }, methods: { + getBorderColor(grade) { + const color = this.rangeList.find((item) => item.gradeName === grade)?.color + return color || '#e0e0e0' + }, + getRangeList() { + getgradeRanglist().then((res) => { + this.rangeList = res.data || [] + }) + }, TopMemberHandleChange(val) { if (val) { this.queryParams.memberCode = val @@ -309,31 +148,6 @@ export default { } }, isLocals, - copyText() { - const copyContent = this.$refs.copyContent - const textLines = Array.from(copyContent.querySelectorAll('div')).map( - (div) => div.textContent.trim() - ) - const text = textLines.join('\n') - const tempInput = document.createElement('textarea') - tempInput.value = text - document.body.appendChild(tempInput) - tempInput.select() - try { - document.execCommand('copy') - this.$message({ - message: '复制成功', - type: 'success' - }) - } catch (error) { - this.$message({ - message: '复制失败', - type: 'warning' - }) - } - tempInput.remove() - window.getSelection().removeAllRanges() - }, // 返回 goback() { this.queryParams.memberCode = this.data.parentMemberCode @@ -417,57 +231,41 @@ export default { onMouseout(e, data) { this.basicSwitch = false }, - //
- //
this.showPover(data)}> - //
- // - //
- //
- //
- // - //
{data.memberCode}
- //
- //
- // - //
{data.name}
- //
- //
- //
- // {/* 阻止冒泡事件 */} - //
{event.stopPropagation(),this.goTop(data)}}>置顶
- //
- //
- //
+ // 渲染节点 renderContent(h, data) { if (!data || Object.keys(data).length === 0) { return } + // 获取边框和阴影颜色 + const borderColor = this.getBorderColor(data.gradeName) + // 阴影色转rgba,透明度0.25(直接在boxShadow中拼接,不再声明shadowColor) return ( -
+
{/* 判断data.codeName是否为空 */}
{data.memberCode ? ( -
+
this.rightClick(this.$event, data)} + >
{data.name}
{data.memberCode}
+
{data.awardsName}
第{data.placeDept}部门
{/*
会员姓名:{data.name}
会员编号:{data.memberCode}
*/}
-
- {/* 阻止冒泡事件 */} -
{ - event.stopPropagation(), this.goTop(data) - }} - > - {'置顶'} -
-
) : null}
@@ -479,20 +277,12 @@ export default { this.queryParams.memberCode = row.memberCode this.getSearch() }, - showPover(row) { - getUrlBase({ - countryUrl2: row.countryUrl2, - settleCountryUrl2: row.settleCountryUrl2, - avatarUrl: row.avatarUrl - }).then((res) => { - this.treeData = row - this.treeData.countryUrl2Base64 = res.countryUrl2Base64 - this.treeData.settleCountryUrl2Base64 = res.settleCountryUrl2Base64 - this.treeData.avatarUrlBase64 = res.avatarUrlBase64 - - this.ifShow = true - }) + rightClick(e, data) { + event.preventDefault() + this.queryParams.memberCode = data.memberCode + this.getSearch() }, + // 点击节点 NodeClick(e, data) {}, // 默认展开 @@ -661,24 +451,30 @@ export default { } .lefttop { display: flex; - justify-items: center; align-items: center; - padding-left: 20px; - background: #ffffff; - .single { - margin: 0 5px; - img { - width: 40px; - height: 40px; - border-radius: 50%; - // box-shadow: 0px 2px 20px 0px rgba(204, 204, 204, 0.5); - } - .singletitle { - text-align: center; - font-size: 10px; - font-family: PingFang SC-Regular, PingFang SC; - } - } + padding: 10px 0 10px 20px; + background: #fff; + border-radius: 8px; + margin-bottom: 10px; + } + .single { + display: flex; + flex-direction: column; + align-items: center; + margin-right: 16px; + } + .colorbox { + width: 24px; + height: 24px; + border-radius: 6px; + border: 1px solid #e0e0e0; + box-shadow: 0 2px 6px rgba(0,0,0,0.06); + margin-bottom: 4px; + } + .singletitle { + font-size: 12px; + color: #333; + margin-top: 2px; } ::v-deep .org-tree-node-label .org-tree-node-label-inner { padding: 0; diff --git a/src/views/framework/architecture/index.vue b/src/views/framework/architecture/index.vue index 081b064..c956dd3 100644 --- a/src/views/framework/architecture/index.vue +++ b/src/views/framework/architecture/index.vue @@ -257,37 +257,17 @@ import { } from '@/api/archityecture' import TopMemberSelect from './components/top-member-select.vue' import { isLocals } from '../../../utils/numberToCurrency' +import tabBarMixin from './mixins/tab-bar' export default { name: 'Azjg', components: { topBar, TopMemberSelect }, + mixins: [tabBarMixin], data() { return { moren: 'azjg', - topList: [ - { - name: '方案一', - path: 'azjg' - }, - { - name: '方案二', - path: 'azjg2' - }, - { - name: '方案三', - path: 'azjg3' - }, - { - name: '方案四', - path: 'azjg4' - }, - { - name: '方案五', - path: 'azjg5' - } - ], queryParams: { memberSettlePeriodId: '', // 期数 memberCode: '', // 会员编号 diff --git a/src/views/framework/architecture/mixins/tab-bar.js b/src/views/framework/architecture/mixins/tab-bar.js new file mode 100644 index 0000000..fe8cf14 --- /dev/null +++ b/src/views/framework/architecture/mixins/tab-bar.js @@ -0,0 +1,16 @@ +export default { + data() { + return { + topList: [ + { + name: '方案一', + path: 'azjg' + }, + { + name: '方案五', + path: 'azjg5' + } + ] + } + } +}