需求变更-1
This commit is contained in:
@@ -19,6 +19,13 @@ html, body, #app {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pb-10 {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
.mb-10{
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.components {
|
.components {
|
||||||
background: #07193D;
|
background: #07193D;
|
||||||
|
|
||||||
|
|||||||
@@ -210,3 +210,36 @@ a, .green {
|
|||||||
.scrollTable tr:hover > .tableCell {
|
.scrollTable tr:hover > .tableCell {
|
||||||
background-color: rgba(255, 255, 255, .1) !important;
|
background-color: rgba(255, 255, 255, .1) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.AppSubTitle {
|
||||||
|
height: 48px;
|
||||||
|
padding: 8px 0 8px 38px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
line-height: 32px;
|
||||||
|
background-image: url("http://10.0.97.209/img/kengee/kengee4.png");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
color: #fff;
|
||||||
|
max-width: 400px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 16px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AppSubTitle span {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #215A8E;
|
||||||
|
}
|
||||||
|
|
||||||
|
.AppSubTitle > .right {
|
||||||
|
position: absolute;
|
||||||
|
right: -30px;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.AppSubTitle .el-select {
|
||||||
|
width: 120px;
|
||||||
|
}
|
||||||
|
|||||||
@@ -204,6 +204,40 @@ Vue.component("tableColumn", {
|
|||||||
return column
|
return column
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
Vue.component("AppSubTitle", {
|
||||||
|
props: {
|
||||||
|
text: {default: "副标题"}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pinyinText: ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getPinyin(text) {
|
||||||
|
const wait = (t = 500) => new Promise(resolve => setTimeout(resolve, t))
|
||||||
|
while (!window.pinyinPro) await wait()
|
||||||
|
const {pinyin} = window.pinyinPro
|
||||||
|
this.pinyinText = pinyin(text, {toneType: 'none'}).toUpperCase()
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
text: {
|
||||||
|
immediate: true,
|
||||||
|
handler(v) {
|
||||||
|
v && this.getPinyin(v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
render(h) {
|
||||||
|
return h('div', {class: 'AppSubTitle'}, [
|
||||||
|
this.text,
|
||||||
|
h('span', this.pinyinText),
|
||||||
|
h('div', {class: 'right'}, this.$slots.right)
|
||||||
|
])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
export default Promise.all([
|
export default Promise.all([
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import AppSubTitle from "@/views/AppSubTitle.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AppKeyGoods",
|
name: "AppKeyGoods",
|
||||||
|
components: {AppSubTitle},
|
||||||
label: "市场看板-重点单品",
|
label: "市场看板-重点单品",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -11,11 +14,13 @@ export default {
|
|||||||
{label: "库存数量", prop: "stockNum", width: 70},
|
{label: "库存数量", prop: "stockNum", width: 70},
|
||||||
{label: "销售目标", prop: "targetSaleNum", width: 70},
|
{label: "销售目标", prop: "targetSaleNum", width: 70},
|
||||||
{label: "销售达成", prop: "saleAchieveRate"},
|
{label: "销售达成", prop: "saleAchieveRate"},
|
||||||
]
|
],
|
||||||
|
goodsCategoryId: ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
search: v => v.$marketBoard.search,
|
search: v => v.$marketBoard.search,
|
||||||
|
dicts: v => window.$dicts || {},
|
||||||
tableConfig: v => {
|
tableConfig: v => {
|
||||||
return {
|
return {
|
||||||
headerBGC: 'rgba(13, 48, 99, 0.6)',
|
headerBGC: 'rgba(13, 48, 99, 0.6)',
|
||||||
@@ -31,8 +36,9 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
getTableData() {
|
getTableData() {
|
||||||
const {$http, $waitFor} = window
|
const {$http, $waitFor} = window
|
||||||
$waitFor($http).then(() => $http.post("/data-boot/la/screen/marketBoard/marketKeyGoods", {
|
const {goodsCategoryId} = this
|
||||||
...this.search, limit: 999
|
$waitFor($http).then(() => $http.post("/data-boot/ca/screen/scStoreKeyGoods/list", {
|
||||||
|
...this.search, limit: 999, goodsCategoryId
|
||||||
})).then(res => {
|
})).then(res => {
|
||||||
if (res?.data) {
|
if (res?.data) {
|
||||||
this.tableData = res.data?.records || []
|
this.tableData = res.data?.records || []
|
||||||
@@ -52,6 +58,13 @@ export default {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<section class="AppKeyGoods">
|
<section class="AppKeyGoods">
|
||||||
|
<app-sub-title text="重点单品">
|
||||||
|
<template #right>
|
||||||
|
<el-select placeholder="全部" v-model="goodsCategoryId" size="small" clearable class="AppSelect" @change="getTableData">
|
||||||
|
<el-option v-for="(op,i) in dicts.品类" :key="i" v-bind="op"/>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</app-sub-title>
|
||||||
<scroll-table :table-data="tableData" :columns="columns"/>
|
<scroll-table :table-data="tableData" :columns="columns"/>
|
||||||
<!--<dv-scroll-board :config="tableConfig"/>-->
|
<!--<dv-scroll-board :config="tableConfig"/>-->
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
import AppMarketBoardFilter from "@/views/AppMarketBoardFilter.vue";
|
import AppMarketBoardFilter from "@/views/AppMarketBoardFilter.vue";
|
||||||
import AppNavbar from "@/views/AppNavbar.vue";
|
import AppNavbar from "@/views/AppNavbar.vue";
|
||||||
import AppMap from "@/views/AppMap.vue";
|
import AppMap from "@/views/AppMap.vue";
|
||||||
import AppSubTitle from "@/views/AppSubTitle.vue";
|
|
||||||
import AppSalesPerformance from "@/views/AppSalesPerformance.vue";
|
import AppSalesPerformance from "@/views/AppSalesPerformance.vue";
|
||||||
import AppKeyGoods from "@/views/AppKeyGoods.vue";
|
import AppKeyGoods from "@/views/AppKeyGoods.vue";
|
||||||
import AppGroupMonitorTable from "@/views/AppGroupMonitorTable.vue";
|
import AppGroupMonitorTable from "@/views/AppGroupMonitorTable.vue";
|
||||||
@@ -13,13 +12,13 @@ import AppHourCount from "@/views/AppHourCount.vue";
|
|||||||
export default {
|
export default {
|
||||||
name: "AppMarketBoard",
|
name: "AppMarketBoard",
|
||||||
label: "市场看板",
|
label: "市场看板",
|
||||||
components: {AppHourCount, AppHourSale, AppStoreMonitor, AppGroupMonitorTable, AppKeyGoods, AppSalesPerformance, AppSubTitle, AppMap, AppNavbar, AppMarketBoardFilter}
|
components: { AppHourCount, AppHourSale, AppStoreMonitor, AppGroupMonitorTable, AppKeyGoods, AppSalesPerformance, AppMap, AppNavbar, AppMarketBoardFilter}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<section class="AppMarketBoard">
|
<section class="AppMarketBoard">
|
||||||
<app-navbar/>
|
<app-navbar class="mb-10"/>
|
||||||
<app-market-board-filter/>
|
<app-market-board-filter/>
|
||||||
<div class="flex" style="gap:20px">
|
<div class="flex" style="gap:20px">
|
||||||
<div class="fill">
|
<div class="fill">
|
||||||
@@ -27,7 +26,6 @@ export default {
|
|||||||
<div style="width: 430px;">
|
<div style="width: 430px;">
|
||||||
<app-sub-title/>
|
<app-sub-title/>
|
||||||
<app-sales-performance style="margin-bottom: 20px"/>
|
<app-sales-performance style="margin-bottom: 20px"/>
|
||||||
<app-sub-title/>
|
|
||||||
<app-key-goods/>
|
<app-key-goods/>
|
||||||
</div>
|
</div>
|
||||||
<app-map class="fill"/>
|
<app-map class="fill"/>
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
export default {
|
export default {
|
||||||
name: "AppSubTitle",
|
name: "AppSubTitle",
|
||||||
label: "副标题",
|
label: "副标题",
|
||||||
|
props: {
|
||||||
|
text: {default: "副标题"}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
text: "副标题",
|
|
||||||
pinyinText: ""
|
pinyinText: ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -32,28 +34,8 @@ export default {
|
|||||||
<section class="AppSubTitle">
|
<section class="AppSubTitle">
|
||||||
{{ text }}
|
{{ text }}
|
||||||
<span v-text="pinyinText"/>
|
<span v-text="pinyinText"/>
|
||||||
|
<div class="right">
|
||||||
|
<slot name="right"/>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.AppSubTitle {
|
|
||||||
height: 48px;
|
|
||||||
padding: 8px 0 8px 38px;
|
|
||||||
margin-bottom: 24px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
line-height: 32px;
|
|
||||||
background-image: url("http://10.0.97.209/img/kengee/kengee4.png");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
color: #fff;
|
|
||||||
max-width: 400px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.AppSubTitle span {
|
|
||||||
font-size: 12px;
|
|
||||||
color: #215A8E;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|||||||
Reference in New Issue
Block a user