|
|
@@ -1,1152 +1,1328 @@
|
|
|
<!-- @desc:首页工作台 @auth:洪旭东 @time:2022-05-02 10:28 -->
|
|
|
<template>
|
|
|
- <div class="main-div">
|
|
|
-<!-- <!– 待办–>-->
|
|
|
-<!-- <Card class="card card-upcoming" @contextmenu.native.prevent>-->
|
|
|
-<!-- <p slot="title">-->
|
|
|
-<!-- 今日产量-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <Tooltip style="cursor: pointer" slot="extra" :content="$t('refresh')" theme="light"-->
|
|
|
-<!-- v-if="flgWarning">-->
|
|
|
-<!-- <Button icon="md-refresh" shape="circle" class="circle-button" @click="refreshWaitCenter"></Button>-->
|
|
|
-<!-- </Tooltip>-->
|
|
|
-<!-- <!– 预警设置按钮–>-->
|
|
|
-<!-- <!– <Tooltip style="cursor: pointer" slot="extra" :content="$t('earlyWarningSetting')" theme="light">–>-->
|
|
|
-<!-- <!– <Button icon="md-settings" shape="circle" class="circle-button" @click="setHomeWarning"></Button>–>-->
|
|
|
-<!-- <!– </Tooltip>–>-->
|
|
|
-<!-- <Button icon="md-settings" slot="extra" shape="circle" class="circle-button" @click="setHomeWarning"></Button>-->
|
|
|
-<!-- <div style="display: flex;align-items: center;">-->
|
|
|
-<!-- <div class="upcoming" :style="{padding: (flgWarning?'':0)}">-->
|
|
|
-<!-- <!–成型产量–>-->
|
|
|
-<!-- <div class="upcoming-card" v-for="(item,index) in homeWarningData_quan" :key="'quan'+index"-->
|
|
|
-<!-- @click="openDrawer(item)">-->
|
|
|
-<!-- <div class="upcoming-card-right">-->
|
|
|
-<!-- <div class="upcoming-card-last">昨日{{ item.lastCount }}-->
|
|
|
-<!-- <Icon v-if="item.currentCount<item.lastCount" type="iconfont iconfont icon-down"-->
|
|
|
-<!-- style="color: #191A23"/>-->
|
|
|
-<!-- <Icon v-else-if="item.currentCount>item.lastCount" type="iconfont iconfont icon-up"-->
|
|
|
-<!-- style="color: #EE6666"/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <div class="upcoming-card-number">{{ item.currentCount }}</div>-->
|
|
|
-<!-- <div class="upcoming-card-text">{{ item.warningName }}</div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <!–质量–>-->
|
|
|
-<!-- <div class="upcoming-card" v-for="(item,index) in homeWarningData_qa" :key="'qa'+index"-->
|
|
|
-<!-- @click="openDrawer(item)"-->
|
|
|
-<!-- style="background-color: #70AD47 !important;">-->
|
|
|
-<!-- <div class="upcoming-card-right">-->
|
|
|
-<!-- <div class="upcoming-card-last">昨日{{ item.lastCount }}%-->
|
|
|
-<!-- <Icon v-if="item.currentCount<item.lastCount" type="iconfont iconfont icon-down"-->
|
|
|
-<!-- style="color: #191A23"/>-->
|
|
|
-<!-- <Icon v-else-if="item.currentCount>item.lastCount" type="iconfont iconfont icon-up"-->
|
|
|
-<!-- style="color: #EE6666"/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <div class="upcoming-card-number">{{ item.currentCount }}%</div>-->
|
|
|
-<!-- <div class="upcoming-card-text">{{ item.warningName }}</div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </Card>-->
|
|
|
-
|
|
|
-<!-- <!–产量分析–>-->
|
|
|
-<!-- <Card class="card card-upcoming" @contextmenu.native.prevent>-->
|
|
|
-<!-- <p slot="title">-->
|
|
|
-<!-- 产量分析-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <div slot="extra">-->
|
|
|
-<!-- <DateWeek @time="getWeekOutPutTime" ref="weekOutPutTime" init/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <Echarts type="bar" :table-columns="tableWeekOutPutColumns" ref="chart_quantity" title="一周产量分析"-->
|
|
|
-<!-- :style="'height: 300px;width: 100%'" :row-field-keys="tableQualityRowFields"-->
|
|
|
-<!-- :table-data="tableWeekOutputData"/>-->
|
|
|
-<!-- </Card>-->
|
|
|
-
|
|
|
-<!-- <!–质量分析–>-->
|
|
|
-<!-- <Card class="card card-upcoming" @contextmenu.native.prevent>-->
|
|
|
-<!-- <p slot="title">-->
|
|
|
-<!-- 质量分析-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <div slot="extra">-->
|
|
|
-<!-- <DateWeek @time="getWeekQualityTime" ref="weekQualityTime" init/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <Echarts type="line" :table-columns="tableWeekQualityColumns" ref="chart_quality" title="一周质量分析"-->
|
|
|
-<!-- :style="'height: 300px;width: 100%'" :row-field-keys="tableQualityRowFields"-->
|
|
|
-<!-- :table-data="tableWeekQualityData"/>-->
|
|
|
-<!-- </Card>-->
|
|
|
-
|
|
|
-<!-- <div style="display: flex">-->
|
|
|
-<!-- <!–半检缺陷TOP5–>-->
|
|
|
-<!-- <Card class="card card-upcoming" style="width: 50%" @contextmenu.native.prevent>-->
|
|
|
-<!-- <p slot="title">-->
|
|
|
-<!-- 半检缺陷TOP5-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <div slot="extra">-->
|
|
|
-<!-- <DateWeek @time="getHalfCheckTime"/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <Echarts type="bar" :table-columns="tableHalfCheckColumns" ref="halfCheckTopDefect" title="半检缺陷TOP5"-->
|
|
|
-<!-- :style="'height: 300px;width: 100%'" :table-data="tableHalfCheckData" x-value/>-->
|
|
|
-<!-- </Card>-->
|
|
|
-<!-- <!–成检缺陷TOP5–>-->
|
|
|
-<!-- <Card class="card card-upcoming" style="width: 49.5%;margin-left: 0.5%" @contextmenu.native.prevent>-->
|
|
|
-<!-- <p slot="title">-->
|
|
|
-<!-- 成检缺陷TOP5-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <div slot="extra">-->
|
|
|
-<!-- <DateWeek @time="getCheckTime"/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <Echarts type="bar" :table-columns="tableCheckColumns" ref="checkTopDefect" title="成检缺陷TOP5"-->
|
|
|
-<!-- :style="'height: 300px;width: 100%'" :table-data="tableCheckData" x-value/>-->
|
|
|
-<!-- </Card>-->
|
|
|
-<!-- </div>-->
|
|
|
-
|
|
|
-<!-- <!–月订单达成率–>-->
|
|
|
-<!-- <Card class="card card-upcoming" @contextmenu.native.prevent>-->
|
|
|
-<!-- <p slot="title">-->
|
|
|
-<!-- 月订单达成率-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <div slot="extra">-->
|
|
|
-<!-- <DateWeek @time="getTime"/>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <Echarts type="bar" :table-columns="tableOrderColumns" ref="chart_quantity" title="月订单达成率"-->
|
|
|
-<!-- subTitle="2023-08-01~2023-08-07"-->
|
|
|
-<!-- :style="'height: 300px;width: 100%'" :row-field-keys="tableOrderRowFields" :table-data="tableOrderData"-->
|
|
|
-<!-- :data-type="['bar', 'line']"/>-->
|
|
|
-<!-- </Card>-->
|
|
|
-
|
|
|
-
|
|
|
-<!-- <Drawer :closable="false" placement="bottom" v-model="drawerShow" :height="drawerHeight" style="overflow-y:hidden">-->
|
|
|
-<!-- <!–预警中心–>-->
|
|
|
-<!-- <Card :bordered="false">-->
|
|
|
-<!-- <p slot="title">{{ drawTitle }}-->
|
|
|
-<!-- <Tooltip :content="!drawerMax?$t('max'):$t('close')" theme="light"-->
|
|
|
-<!-- style="float: right;margin-right: 10px;cursor: pointer">-->
|
|
|
-<!-- <Icon v-if="!drawerMax" type="ios-expand" size="18" @click="maxDrawer"/>-->
|
|
|
-<!-- <Icon v-else type="md-close" size="18" @click="drawerShow = false;"/>-->
|
|
|
-<!-- </Tooltip>-->
|
|
|
-<!-- <div style="clear: both;"></div>-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- <DkTable :id="'table-'+$options.name" ref="table-select" :data="homeWarningItemData"-->
|
|
|
-<!-- :pageFlag="false"-->
|
|
|
-<!-- :choose-flag="false"-->
|
|
|
-<!-- :show-setting-flag="false"-->
|
|
|
-<!-- :auto-width-flag="false"-->
|
|
|
-<!-- :height="drawerHeight - 94">-->
|
|
|
-<!-- <DkTableColumn field="nodeName"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="modelCodeName" :title="$t('pdtModel')"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="logoCodeName" :title="$t('productLogo')"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="colourCodeName" :title="$t('productColour')"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="gradeName"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="prodUserCodeName" :title="$t('prodUserCode')"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="opnTime" :dataType="$config.dataType.dateTime"></DkTableColumn>-->
|
|
|
-<!-- <DkTableColumn field="pdtProdQty" :dataType="$config.dataType.number"></DkTableColumn>-->
|
|
|
-<!-- </DkTable>-->
|
|
|
-<!-- </Card>-->
|
|
|
-<!-- </Drawer>-->
|
|
|
-<!-- <!–预警设置modal–>-->
|
|
|
-<!-- <DkModal-->
|
|
|
-<!-- :loading="settingModalLoading"-->
|
|
|
-<!-- v-model="settingModal"-->
|
|
|
-<!-- ref="modal_setting"-->
|
|
|
-<!-- :title="$t('earlyWarningSetting')"-->
|
|
|
-<!-- :save-flag="true"-->
|
|
|
-<!-- @on-visible-change="onVisibleChange"-->
|
|
|
-<!-- @modalOk="saveData()"-->
|
|
|
-<!-- width="900px"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <DkTabs v-model="currentWarningType" :options="tabsOptions"></DkTabs>-->
|
|
|
-<!-- <!– 预警 –>-->
|
|
|
-<!-- <div :style="'height: ' + (tableHeight )+ 'px'" class="split-div-class"-->
|
|
|
-<!-- v-show="currentWarningType == 0">-->
|
|
|
-<!-- <DkSplit v-model="split">-->
|
|
|
-<!-- <EditTable slot="left" ref="warnTable_quantity"-->
|
|
|
-<!-- :data="warningSettingFormData"-->
|
|
|
-<!-- :height="tableHeight"-->
|
|
|
-<!-- :choose-flag="false"-->
|
|
|
-<!-- :auto-focus="false"-->
|
|
|
-<!-- :enabledRepeat=true-->
|
|
|
-<!-- majorField="setId"-->
|
|
|
-<!-- :columns="warningSettingTableColumn"-->
|
|
|
-<!-- :show-setting-flag="false"-->
|
|
|
-<!-- @delRow="warnDelRow"-->
|
|
|
-<!-- @current-change="currentFlow"-->
|
|
|
-<!-- ></EditTable>-->
|
|
|
-<!-- <!– 工序行切换–>-->
|
|
|
-<!-- <EditTable slot="right" ref="flowNode"-->
|
|
|
-<!-- :data="warningSettingFormData[currentRowIndex]?.flowList"-->
|
|
|
-<!-- :height="tableHeight"-->
|
|
|
-<!-- control-id="nodeId"-->
|
|
|
-<!-- :choose-flag="false"-->
|
|
|
-<!-- :columns="flowNodeColumn"-->
|
|
|
-<!-- :show-setting-flag="false"-->
|
|
|
-<!-- :enabled-repeat="false"-->
|
|
|
-<!-- enabled-repeat-id="nodeId"-->
|
|
|
-<!-- @delRow="flowDelRow"-->
|
|
|
-<!-- @chooseData="chooseFlowValue"-->
|
|
|
-
|
|
|
-<!-- ></EditTable>-->
|
|
|
-<!-- </DkSplit>-->
|
|
|
-<!-- </div>-->
|
|
|
-
|
|
|
-<!-- <!– 预警 2 –>-->
|
|
|
-<!-- <EditTable ref="warnTable_quality" v-show="currentWarningType == 1"-->
|
|
|
-<!-- :data="warningSettingFormData_qa"-->
|
|
|
-<!-- :height="tableHeight"-->
|
|
|
-<!-- :choose-flag="false"-->
|
|
|
-<!-- :auto-focus="false"-->
|
|
|
-<!-- :columns="warningSettingTableColumn_qa"-->
|
|
|
-<!-- :enabled-repeat="false"-->
|
|
|
-<!-- enabled-repeat-id="kindCode"-->
|
|
|
-<!-- majorField="setId"-->
|
|
|
-<!-- control-id="qualityType"-->
|
|
|
-<!-- :show-setting-flag="false"-->
|
|
|
-<!-- @chooseData="chooseQualityType"-->
|
|
|
-<!-- @delRow="warnDelRow"></EditTable>-->
|
|
|
-<!-- </DkModal>-->
|
|
|
-<!-- <!– 底部留白–>-->
|
|
|
-<!-- <div style="width: 100%; height: 20px"></div>-->
|
|
|
+ <div class="main-div" style="background-color: #fff">
|
|
|
+ <!--常用功能自定义弹窗 -->
|
|
|
+ <DkModal
|
|
|
+ @contextmenu.native.prevent
|
|
|
+ @modalCancel="closeCommonUse"
|
|
|
+ @modalOk="saveCommonUse"
|
|
|
+ :loading="funcModalLoading"
|
|
|
+ v-model="funcModal"
|
|
|
+ width="1000"
|
|
|
+ title="设置常用功能">
|
|
|
+ <div style="width: 100%;display: flex;">
|
|
|
+ <div class="modal-left-div" style="width: 50%;height: 600px;overflow: auto;padding-right: 5px;">
|
|
|
+ <div v-for="(fItem,fIndex) in funcList" :key="fIndex" style="width: 100%">
|
|
|
+ <Divider orientation="left">{{ fItem.meta.title }}</Divider>
|
|
|
+ <div style="display: flex;width: 100%;flex-wrap: wrap;">
|
|
|
+ <div v-for="(f2Item,f2Index) in fItem.children" :key="f2Index" :style="{marginTop:f2Index>4?'10px':'0'}"
|
|
|
+ style="position:relative;width: 20%;text-align: center;">
|
|
|
+ <Checkbox @on-change="funcCheckBoxChange($event,f2Item)" :ref="'name-'+f2Item.menuUuid" class="ttt" v-model="f2Item._checked">
|
|
|
+ <div style="width: 40px;height: 40px;position: relative;margin: auto">
|
|
|
+ <img :src="require('@/assets/images/menu-image/' + (f2Item.meta.icon ? f2Item.meta.icon + '.png':'customer.png') )" style="width: 40px;height: 40px;"/>
|
|
|
+ </div>
|
|
|
+ <div class="func-item-title">{{ f2Item.meta.title }}</div>
|
|
|
+ </Checkbox>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="modal-right-div" style="width: 50%;height: 600px;overflow: auto;padding-right: 5px;">
|
|
|
+ <div style="height: 56px;display: flex;justify-content: center;align-items: center;">
|
|
|
+ <div v-show="rightFuncList.length>0" class="clear-btn" @click="clearAll">全部清空</div>
|
|
|
+ </div>
|
|
|
+ <draggable v-if="rightFuncList.length>0" :animation="300" v-model="rightFuncList" style="display: flex;width: 100%;flex-wrap: wrap;">
|
|
|
+ <div v-for="(rfItem,rfIndex) in rightFuncList" class="draggable-div" :key="rfIndex"
|
|
|
+ style="position:relative;width: 20%;margin-bottom:10px;text-align: center;">
|
|
|
+ <div style="width: 40px;height: 40px;position: relative;margin: auto">
|
|
|
+ <img :src="require('@/assets/images/menu-image/' +( rfItem.meta.icon ? rfItem.meta.icon + '.png':'customer.png') )" style="width: 40px;height: 40px;"/>
|
|
|
+ <div @click="funcCheckBoxChangeRight('name-'+rfItem.menuUuid)" style="cursor:pointer;display:flex;justify-content:center;font-size:14px;align-items:center;position: absolute;top: -7px;right: -7px;padding: 2px;background-color: red;border: 1px solid #fff;border-radius: 50%;height: 20px;width:20px;color:#fff;font-weight: bold;">
|
|
|
+ <div style="width: 75%;height: 2px;background-color: #fff;"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="func-item-title">{{ rfItem.meta.title }}</div>
|
|
|
+ </div>
|
|
|
+ </draggable>
|
|
|
+ <div v-else style="width: 100%;text-align: center;">
|
|
|
+ <div style="margin-top: 100px;">
|
|
|
+ <Icon type="logo-dropbox" color="#b6b6b6" size="42" />
|
|
|
+ <span style="display: block;color:#b6b6b6;margin-top: 5px;">请从左侧勾选以选择常用功能</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </DkModal>
|
|
|
+ <!-- 常用功能-->
|
|
|
+ <Card class="card" style="margin-top: 0" @contextmenu.native.prevent>
|
|
|
+ <p slot="title">
|
|
|
+ 常用功能
|
|
|
+ </p>
|
|
|
+ <Button slot="extra" icon="md-create" @click="openFuncModal">
|
|
|
+ 自定义
|
|
|
+ </Button>
|
|
|
+ <div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
|
|
|
+ <div style="width: 25px;" v-if="homeCommonUseList && homeCommonUseList.length > 0">
|
|
|
+ <Icon type="ios-arrow-dropleft" style="cursor: pointer" @click.native="scrollCommonUseCard('left')"
|
|
|
+ size="25"/>
|
|
|
+ </div>
|
|
|
+ <div class="common-use-scroll" style="width: calc(100% - 70px);overflow: hidden;">
|
|
|
+ <div v-if="homeCommonUseList && homeCommonUseList.length>0" style="display:flex;width: max-content;">
|
|
|
+ <div v-for="(hcuItem,hcuIndex) in homeCommonUseList" :key="hcuIndex" style="width: 92px;text-align: center;">
|
|
|
+ <div @click="toPage(hcuItem)" style="cursor: pointer;">
|
|
|
+ <div>
|
|
|
+ <img style="width: 40px;height: 40px" :src="require('@/assets/images/menu-image/' + hcuItem.menuTag.image )" />
|
|
|
+ </div>
|
|
|
+ <div style="font-size: 13px">{{ hcuItem.menuName }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-else style="display:flex;width: max-content;">
|
|
|
+ <div @click="openFuncModal" style="cursor:pointer;border: 1px #d5d5d5 dashed;color:#b1b1b1;font-size:16px;height: 60px;width: 200px;background:#eaf9ff;border-radius: 10px;display: flex;align-items: center;justify-content: center;">添加常用功能</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="width: 25px;" v-if="homeCommonUseList && homeCommonUseList.length > 0">
|
|
|
+ <Icon type="ios-arrow-dropleft" style="transform: rotate(180deg);cursor: pointer;"
|
|
|
+ @click.native="scrollCommonUseCard('right')" size="25"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Card>
|
|
|
+
|
|
|
+ <!-- 待办-->
|
|
|
+ <Card class="card card-upcoming" @contextmenu.native.prevent>
|
|
|
+ <div style="display: flex">
|
|
|
+ <div style="font-size: 16px;font-weight:500;color:#17233d;margin-right: 40px">
|
|
|
+ 待办中心
|
|
|
+ </div>
|
|
|
+ <Tabs value="name1" v-model="detailModel" @on-click="detailTabsClick">
|
|
|
+ <TabPane v-for="(item,index) in detailOptions" :key="index" :label="item.label" :name="item.name"></TabPane>
|
|
|
+ </Tabs>
|
|
|
+ </div>
|
|
|
+ <Tooltip style="cursor: pointer" slot="extra" :content="$v('refresh')" theme="light" >
|
|
|
+ <Button icon="md-refresh" shape="circle" class="circle-button" @click="refreshWaitCenter"></Button>
|
|
|
+ </Tooltip>
|
|
|
+ <div style="display: flex;align-items: center;">
|
|
|
+ <div class="upcoming">
|
|
|
+ <!--销售-->
|
|
|
+ <div class="upcoming-card" v-if="saleFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
|
|
|
+ <Row>
|
|
|
+ <Col span="6" class="upcoming-card-icon">
|
|
|
+ <img :src="require('@/assets/images/menu-image/' + 'web-order-pending.png')" style="width: 40px;height: 40px;"/>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-number">
|
|
|
+ {{ orderCount }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
|
|
|
+ {{ $t('salePending') }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ </Row>
|
|
|
+ </div>
|
|
|
+ <!--库存-->
|
|
|
+ <div class="upcoming-card" v-if="inventoryFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
|
|
|
+ <Row>
|
|
|
+ <Col span="6" class="upcoming-card-icon">
|
|
|
+ <img :src="require('@/assets/images/menu-image/' + 'web-into-pending.png')" style="width: 40px;height: 40px;"/>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-number">
|
|
|
+ {{ intoCount }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
|
|
|
+ {{ $t('intoPending') }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ </Row>
|
|
|
+ </div>
|
|
|
+ <div class="upcoming-card" v-if="inventoryFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
|
|
|
+ <Row>
|
|
|
+ <Col span="6" class="upcoming-card-icon">
|
|
|
+ <img :src="require('@/assets/images/menu-image/' + 'web-out-pending.png')" style="width: 40px;height: 40px;"/>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-number">
|
|
|
+ {{ outCount }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
|
|
|
+ {{ $t('outPending') }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ </Row>
|
|
|
+ </div>
|
|
|
+ <!--资金-->
|
|
|
+ <div class="upcoming-card" v-if="fundFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
|
|
|
+ <Row>
|
|
|
+ <Col span="6" class="upcoming-card-icon">
|
|
|
+ <img :src="require('@/assets/images/menu-image/' + 'web-fund-pending.png')" style="width: 40px;height: 40px;"/>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-number">
|
|
|
+ {{ fundCount }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ <Col span="18">
|
|
|
+ <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
|
|
|
+ {{ $t('fundPending') }}
|
|
|
+ </Row>
|
|
|
+ </Col>
|
|
|
+ </Row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Card>
|
|
|
+
|
|
|
+ <!-- 底部留白-->
|
|
|
+ <div style="width: 100%; height: 20px"></div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import funcIcon from '../../../assets/images/func-icon.png'
|
|
|
-import Echarts from '@/components/sub/echarts/echarts'
|
|
|
-import DateWeek from '_c/base/date-week/index'
|
|
|
-
|
|
|
-export default {
|
|
|
- name: 'home',
|
|
|
- components: {Echarts, DateWeek},
|
|
|
- data() {
|
|
|
- let self = this
|
|
|
- return {
|
|
|
- split: 0.8,
|
|
|
- settingModalLoading: false,
|
|
|
- warningSettingFormData: [], // 产量数据
|
|
|
- warningSettingFormData_qa: [],// 质量数据
|
|
|
- tableHeight: 438,
|
|
|
- //预警列表
|
|
|
- warningSettingTableColumn: [
|
|
|
- {
|
|
|
- field: 'warningName',
|
|
|
- type: 'text'
|
|
|
- },
|
|
|
- {field: 'remarks', type: 'text', width: 'auto'},
|
|
|
- {field: 'displayNo', type: 'number', width: 80},
|
|
|
- ],
|
|
|
- warningSettingTableColumn_qa: [
|
|
|
- {
|
|
|
- field: 'qualityType',
|
|
|
- type: 'select',
|
|
|
- controlId: 'qualityType',
|
|
|
- title: this.$t('qualityType'),
|
|
|
- labelKey: 'kindName',
|
|
|
- valueKey: 'kindCode',
|
|
|
- options: () => this.qualityTypeData,
|
|
|
- },
|
|
|
- {field: 'remarks', type: 'text', width: 'auto'},
|
|
|
- {field: 'displayNo', type: 'number', width: 'auto'},
|
|
|
- ],
|
|
|
- flowNodeColumn: [
|
|
|
- {
|
|
|
- field: 'nodeName',
|
|
|
- width: 'auto',
|
|
|
- controlId: 'nodeId',
|
|
|
- type: 'tableSelect',
|
|
|
- dataType: self.$config.tableSelectType.processNode,
|
|
|
- fieldUpdate: self.$updateColumns.outKilnStrategyStatsNodes,
|
|
|
- }
|
|
|
- ],
|
|
|
- currentWarningType: '0',// 默认在产量
|
|
|
- settingModal: false,//是否显示预警界面
|
|
|
- drawType: self.$config.homeDrawType.waitAudit, // 首页抽屉类型
|
|
|
- drawerHeight: 350, // 抽屉的高度
|
|
|
- funcIcon,
|
|
|
- funcModal: false,
|
|
|
- funcModalLoading: false,
|
|
|
- flgWarning: false,// 是否有预警数据
|
|
|
- homeWarningData_quan: [],// 预警数据-数量
|
|
|
- homeWarningData_qa: [],// 预警数据-质量
|
|
|
- homeWarningItemData: [],// 预警明细数据
|
|
|
- drawTitle: null,
|
|
|
- funcList: [],
|
|
|
- rightFuncList: [],
|
|
|
- homeCommonUseList: [],
|
|
|
- earlySettingList: [],//预警表单数据
|
|
|
- qualityTypeData: [],//质量类型可选项
|
|
|
- tabsOptions: [
|
|
|
- {label: self.$t('产量'), name: '0'},
|
|
|
- {label: self.$t('质量'), name: '1'},
|
|
|
- ],
|
|
|
- currentRowIndex: 0,// 当前行号
|
|
|
- tableQualityData: [
|
|
|
- {date: '2023-08-01', 注浆: 10, 精坯: 18, 釉坯: 15, 烧成: 18, 成检: 19, 包装: 18},
|
|
|
- {date: '2023-08-02', 注浆: 15, 精坯: 17, 釉坯: 18, 烧成: 17, 成检: 16, 包装: 22},
|
|
|
- {date: '2023-08-03', 注浆: 18, 精坯: 18, 釉坯: 15, 烧成: 19, 成检: 19, 包装: 21},
|
|
|
- {date: '2023-08-04', 注浆: 12, 精坯: 20, 釉坯: 14, 烧成: 20, 成检: 28, 包装: 18},
|
|
|
- {date: '2023-08-05', 注浆: 22, 精坯: 28, 釉坯: 27, 烧成: 27, 成检: 29, 包装: 23},
|
|
|
- {date: '2023-08-06', 注浆: 20, 精坯: 22, 釉坯: 22, 烧成: 22, 成检: 22, 包装: 22},
|
|
|
- {date: '2023-08-07', 注浆: 18, 精坯: 17, 釉坯: 18, 烧成: 11, 成检: 17, 包装: 11},
|
|
|
- ],
|
|
|
-
|
|
|
- tableQualityRowFields: [
|
|
|
- 'date'
|
|
|
- ],
|
|
|
-
|
|
|
- tableQualityColumns: [
|
|
|
- {field: 'date', title: '日期'},
|
|
|
- {field: '注浆', title: '注浆'},
|
|
|
- {field: '精坯', title: '精坯'},
|
|
|
- {field: '釉坯', title: '釉坯'},
|
|
|
- {field: '烧成', title: '烧成'},
|
|
|
- {field: '成检', title: '成检'},
|
|
|
- {field: '包装', title: '包装'},
|
|
|
- ],
|
|
|
-
|
|
|
- tableCheckColumns: [],
|
|
|
- tableHalfCheckColumns: [],
|
|
|
- tableWeekOutPutColumns: [],
|
|
|
- tableWeekQualityColumns: [],
|
|
|
-
|
|
|
-
|
|
|
- tableCheckData: [],
|
|
|
- tableHalfCheckData: [],
|
|
|
- tableWeekOutputData: [],
|
|
|
- tableWeekQualityData: [],
|
|
|
-
|
|
|
- halfCheckTimeStart: null,
|
|
|
- halfCheckTimeEnd: null,
|
|
|
- checkTimeStart: null,
|
|
|
- checkTimeEnd: null,
|
|
|
-
|
|
|
- weekQualityTimeStart: null,
|
|
|
- weekQualityTimeEnd: null,
|
|
|
-
|
|
|
- weekOutputTimeStart: null,
|
|
|
- weekOutputTimeEnd: null,
|
|
|
-
|
|
|
- tableOrderColumns: [
|
|
|
- {field: 'date', title: '日期'},
|
|
|
- {field: '实际产量', title: '实际产量'},
|
|
|
- {field: '计划产量', title: '计划产量'},
|
|
|
- ],
|
|
|
-
|
|
|
- tableOrderData: [
|
|
|
- {date: '2023-08-01', 实际产量: 10, 计划产量: 18},
|
|
|
- {date: '2023-08-02', 实际产量: 17, 计划产量: 22},
|
|
|
- {date: '2023-08-03', 实际产量: 22, 计划产量: 21},
|
|
|
- {date: '2023-08-04', 实际产量: 18, 计划产量: 24},
|
|
|
- {date: '2023-08-05', 实际产量: 21, 计划产量: 23},
|
|
|
- {date: '2023-08-06', 实际产量: 13, 计划产量: 18},
|
|
|
- {date: '2023-08-07', 实际产量: 14, 计划产量: 17},
|
|
|
- ],
|
|
|
-
|
|
|
- tableOrderRowFields: [
|
|
|
- 'date'
|
|
|
- ],
|
|
|
- // 抽屉
|
|
|
- drawerShow: false,
|
|
|
- // 抽屉最大化
|
|
|
- drawerMax: false,
|
|
|
- }
|
|
|
- },
|
|
|
- watch: {
|
|
|
- drawerShow(n, o) {
|
|
|
- // 抽屉关闭后,进行初始化操作
|
|
|
- if (!n) {
|
|
|
- this.drawerHeight = 300;
|
|
|
- this.drawerMax = false;
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- // 监听页面,如果大小变化,抽屉关闭
|
|
|
- let self = this
|
|
|
- window.addEventListener('resize', function (e) {
|
|
|
- self.drawerShow = false;
|
|
|
- })
|
|
|
- },
|
|
|
- methods: {
|
|
|
- /**
|
|
|
- * @desc : 最大化drawer组件
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/5 9:39
|
|
|
- */
|
|
|
- maxDrawer() {
|
|
|
- this.drawerMax = true;
|
|
|
- this.drawerHeight = document.documentElement.clientHeight;
|
|
|
+ import funcIcon from '../../../assets/images/func-icon.png'
|
|
|
+ import draggable from "vuedraggable"
|
|
|
+ export default {
|
|
|
+ name: 'home',
|
|
|
+ components: {
|
|
|
+ draggable,
|
|
|
},
|
|
|
- toPage(menu) {
|
|
|
- this.$router.push({path: menu.menuTag.path})
|
|
|
- },
|
|
|
- getMonthDays(date) {
|
|
|
- date = date || new Date()
|
|
|
- const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0)
|
|
|
- const days = temp.getDate()
|
|
|
- return days
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 打开抽屉
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2022-05-02 17:27
|
|
|
- */
|
|
|
- openDrawer(item) {
|
|
|
- let drawer = document.getElementsByClassName('ivu-drawer-bottom')
|
|
|
- let leftSider = document.getElementsByClassName('left-sider')
|
|
|
- if (drawer && leftSider && drawer[0] && leftSider[0]) {
|
|
|
- drawer[0].style.width = (document.body.clientWidth - leftSider[0].getBoundingClientRect().width) + 'px'
|
|
|
- }
|
|
|
- // 获取明细数据
|
|
|
- if (item) {
|
|
|
- this.drawTitle = item.warningName
|
|
|
- this.getHomeWarningItem(item);
|
|
|
- }
|
|
|
- this.drawerShow = true
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 待办滚动
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2022-05-03 17:21
|
|
|
- */
|
|
|
- scrollUpcomingCard(e) {
|
|
|
- for (let i = 0; i < 701; i++) {
|
|
|
- setTimeout(function () {
|
|
|
- if (e == 'left') {
|
|
|
- document.getElementsByClassName('upcoming')[0].scrollLeft--
|
|
|
- } else {
|
|
|
- document.getElementsByClassName('upcoming')[0].scrollLeft++
|
|
|
- }
|
|
|
- }, 100 + i)
|
|
|
+ data() {
|
|
|
+ let self = this
|
|
|
+ return {
|
|
|
+ drawType: self.$config.homeDrawType.waitAudit, // 首页抽屉类型
|
|
|
+ approvalCount: null , // 待审条数
|
|
|
+ unReadNoticeCount: null, // 未读公告条数
|
|
|
+ waitApprovalRight:false,// 待审中心权限
|
|
|
+ approveSplit: 0.6,
|
|
|
+ funcIcon,
|
|
|
+ /*****************常用功能*****************/
|
|
|
+ funcModal: false,
|
|
|
+ funcModalLoading: false,
|
|
|
+ funcList: [],
|
|
|
+ rightFuncList: [],
|
|
|
+ homeCommonUseList: [],
|
|
|
+ /*****************常用功能*****************/
|
|
|
+
|
|
|
+ /*****************待办*****************/
|
|
|
+ detailModel: 'sale',
|
|
|
+ detailOptions: [
|
|
|
+ {label: self.$t('sale'), name: 'sale'}, //销售
|
|
|
+ {label: self.$t('inventory'), name: 'inventory'},//库存
|
|
|
+ {label: self.$t('fund'), name: 'fund'},//资金
|
|
|
+ ],
|
|
|
+ saleFlag:true,
|
|
|
+ inventoryFlag:false,
|
|
|
+ fundFlag:false,
|
|
|
+ fundCount:0,
|
|
|
+ outCount:0,
|
|
|
+ intoCount:0,
|
|
|
+ orderCount:0,
|
|
|
+ /*****************待办*****************/
|
|
|
+
|
|
|
+ //公告
|
|
|
+ managementTableData: [],
|
|
|
+ //图表颜色
|
|
|
+ colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
|
|
|
+ // 日期配置
|
|
|
+ dateOptions: {
|
|
|
+ shortcuts: [
|
|
|
+ {
|
|
|
+ text: '一月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '二月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(2)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '三月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(3)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '四月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(4)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '五月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(5)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '六月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(6)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '七月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(7)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '八月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(8)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '九月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(9)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '十月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(10)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '十一月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(11)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '十二月',
|
|
|
+ value() {
|
|
|
+ return self.getThisMonth(12)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '一季度',
|
|
|
+ value() {
|
|
|
+ return self.getThisQuarter(1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '二季度',
|
|
|
+ value() {
|
|
|
+ return self.getThisQuarter(2)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '三季度',
|
|
|
+ value() {
|
|
|
+ return self.getThisQuarter(3)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '四季度',
|
|
|
+ value() {
|
|
|
+ return self.getThisQuarter(4)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ // 抽屉
|
|
|
+ drawerShow: false,
|
|
|
+ // 抽屉标题
|
|
|
+ drawerTitle: null,
|
|
|
+ // 抽屉表格
|
|
|
+ drawerTableData: [],
|
|
|
+ // 抽屉表格列
|
|
|
+ drawerTableColumn: [],
|
|
|
+ // 业绩日期范围
|
|
|
+ performanceDate: self.getThisMonth(),
|
|
|
+ // 业务门店select v-model
|
|
|
+ performanceStore: '全部门店',
|
|
|
+ // 门店
|
|
|
+ performanceStoreList: [
|
|
|
+ {
|
|
|
+ value: '全部门店',
|
|
|
+ label: '全部门店'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'A门店',
|
|
|
+ label: 'A门店'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'B门店',
|
|
|
+ label: 'B门店'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ // 销售简报页面类型
|
|
|
+ salesReportType: 1,
|
|
|
+ // 销售简报公司select v-model
|
|
|
+ salesReportCompany: 'A公司',
|
|
|
+ salesReportCompanyList: [
|
|
|
+ {
|
|
|
+ value: 'A公司',
|
|
|
+ label: 'A公司'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'B公司',
|
|
|
+ label: 'B公司'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ // 销售简报人员 v-model
|
|
|
+ salesReportStaff: 'A员工',
|
|
|
+ // 销售简报人员List
|
|
|
+ salesReportStaffList: [
|
|
|
+ {
|
|
|
+ value: 'A员工',
|
|
|
+ label: 'A员工'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'B员工',
|
|
|
+ label: 'B员工'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ // 销售简报radio
|
|
|
+ salesReportRadio: '销售情况',
|
|
|
+ // 销售助手天数list
|
|
|
+ salesHelperDaysList: [
|
|
|
+ {
|
|
|
+ value: '7',
|
|
|
+ label: '7天'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '15',
|
|
|
+ label: '15天'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: '30',
|
|
|
+ label: '30天'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ // 销售助手天数1
|
|
|
+ salesHelperDays1: '7',
|
|
|
+ // 销售助手天数2
|
|
|
+ salesHelperDays2: '15',
|
|
|
+ // 销售助手天数3
|
|
|
+ salesHelperDays3: '30',
|
|
|
}
|
|
|
},
|
|
|
- /**
|
|
|
- * @desc : 刷新预警中心数据
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2022/8/20 17:22
|
|
|
- */
|
|
|
- refreshWaitCenter() {
|
|
|
- this.getHomeWarning(); // 查询预警数据
|
|
|
- },
|
|
|
-
|
|
|
- getTime(e) {
|
|
|
- console.log(e.start, e.end)
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 半检时间选择
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-08 15:20
|
|
|
- */
|
|
|
- getHalfCheckTime ({start, end}) {
|
|
|
- this.halfCheckTimeStart = start
|
|
|
- this.halfCheckTimeEnd = end
|
|
|
- this.getTopFiveHalfCheckDefect()
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 成检时间选择
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-08 15:20
|
|
|
- */
|
|
|
- getCheckTime ({start, end}) {
|
|
|
- this.checkTimeStart = start
|
|
|
- this.checkTimeEnd = end
|
|
|
- this.getTopFiveCheckDefect()
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 一周产量分析时间选择
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-12 16:37
|
|
|
- */
|
|
|
- getWeekOutPutTime ({start, end}) {
|
|
|
- this.weekOutputTimeStart = start
|
|
|
- this.weekOutputTimeEnd = end
|
|
|
- this.getWeekOutPut()
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 一周质量分析时间选择
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-13 11:38
|
|
|
- */
|
|
|
- getWeekQualityTime ({start, end}) {
|
|
|
- this.weekQualityTimeStart = start
|
|
|
- this.weekQualityTimeEnd = end
|
|
|
- this.getWeekQuality()
|
|
|
- },
|
|
|
- // region 预警信息
|
|
|
- /**
|
|
|
- * @desc : 获取预警信息
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/1 11:35
|
|
|
- */
|
|
|
- getHomeWarning() {
|
|
|
- let params = {
|
|
|
- ftyId: this.$store.state.user.ftyId,
|
|
|
- date: new Date()
|
|
|
- }
|
|
|
- this.excute(this.$service.homeReportService, this.$service.homeReportService.getHomeWarning, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- if (res.data && res.data.length > 0) {
|
|
|
- // 数量
|
|
|
- this.homeWarningData_quan = res.data.filter(it => it.warningType === 0)
|
|
|
- // 质量
|
|
|
- this.homeWarningData_qa = res.data.filter(it => it.warningType === 1)
|
|
|
- this.flgWarning = true;
|
|
|
- } else {
|
|
|
- this.homeWarningData_quan = []
|
|
|
- this.homeWarningData_qa = []
|
|
|
- this.flgWarning = false;
|
|
|
- }
|
|
|
- }
|
|
|
+ mounted() {
|
|
|
+ // 监听页面,如果大小变化,抽屉关闭
|
|
|
+ let self = this
|
|
|
+ window.addEventListener('resize', function (e) {
|
|
|
+ self.drawerShow = false;
|
|
|
})
|
|
|
},
|
|
|
- /**
|
|
|
- * @desc : 获取明细数据
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/1 13:50
|
|
|
- */
|
|
|
- getHomeWarningItem(item) {
|
|
|
- let params = {
|
|
|
- ftyId: this.$store.state.user.ftyId,
|
|
|
- warningSetId: item.warningSetId,
|
|
|
- date: item.date
|
|
|
- }
|
|
|
- this.excute(this.$service.homeReportService, this.$service.homeReportService.getHomeWarningItem, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- this.homeWarningItemData = res.data
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 查询成检缺陷TOP5
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-08 14:45
|
|
|
- */
|
|
|
- getTopFiveCheckDefect() {
|
|
|
- let params = {
|
|
|
- ftyId: this.$store.state.user.ftyId,
|
|
|
- nodeKind: this.$config.nodeKind.finishCheck,
|
|
|
- timeStart: this.checkTimeStart,
|
|
|
- timeEnd: this.checkTimeEnd
|
|
|
- }
|
|
|
- this.excute(this.$service.homeReportService, this.$service.homeReportService.getTopFiveDefect, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- this.tableCheckColumns = res.data.map(m => {return {
|
|
|
- field: m.defectName, title: m.defectName
|
|
|
- }})
|
|
|
- let data = {}
|
|
|
- for (let it of res.data) {
|
|
|
- data = Object.assign(data, it.res)
|
|
|
+ methods: {
|
|
|
+ /****************************************常用功能****************************************/
|
|
|
+ /**
|
|
|
+ * @desc : 常用功能弹窗查询数据
|
|
|
+ * @date : 2024/4/28 15:02
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ openFuncModal() {
|
|
|
+ this.funcModal = true
|
|
|
+ let hadMenuUuidList = this.homeCommonUseList.map(it => it.menuUuid)
|
|
|
+ let rightFuncList = []
|
|
|
+ this.funcList.forEach(it => {
|
|
|
+ if (it.children && it.children.length > 0) {
|
|
|
+ it.children.forEach(it2 => {
|
|
|
+ this.$set(it2, '_checked', false)
|
|
|
+ if (hadMenuUuidList.indexOf(it2.menuUuid) !== -1) {
|
|
|
+ rightFuncList.push(Object.assign(it2, {displayNo: hadMenuUuidList.indexOf(it2.menuUuid)}))
|
|
|
+ this.$set(it2, '_checked', true)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
- this.tableCheckData = [data]
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 查询半检缺陷TOP5
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-08 15:19
|
|
|
- */
|
|
|
- getTopFiveHalfCheckDefect() {
|
|
|
- let params = {
|
|
|
- ftyId: this.$store.state.user.ftyId,
|
|
|
- nodeKind: this.$config.nodeKind.halfCheck,
|
|
|
- timeStart: this.halfCheckTimeStart,
|
|
|
- timeEnd: this.halfCheckTimeEnd
|
|
|
- }
|
|
|
- this.excute(this.$service.homeReportService, this.$service.homeReportService.getTopFiveDefect, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- this.tableHalfCheckColumns = res.data.map(m => {return {
|
|
|
- field: m.defectName, title: m.defectName
|
|
|
- }})
|
|
|
- let data = {}
|
|
|
- for (let it of res.data) {
|
|
|
- data = Object.assign(data, it.res)
|
|
|
+ })
|
|
|
+ this.rightFuncList = rightFuncList.sort((x, y) => {
|
|
|
+ return x.displayNo - y.displayNo
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 关闭常用功能界面
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/22 14:38
|
|
|
+ */
|
|
|
+ closeCommonUse() {
|
|
|
+ this.funcModal = false
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 保存常用功能
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/22 14:25
|
|
|
+ */
|
|
|
+ saveCommonUse() {
|
|
|
+ this.funcModalLoading = true
|
|
|
+ let params = this.rightFuncList.map((it, index) => {
|
|
|
+ return {userId: this.$store.state.user.id, displayNo: index, menuUuid: it.menuUuid, menuName:it.meta.title}
|
|
|
+ })
|
|
|
+ console.log("保存常用功能",params )
|
|
|
+ let excute = this.excute(this.$service.appMenuService, this.$service.appMenuService.save, params)
|
|
|
+ excute.then(res => {
|
|
|
+ this.funcModalLoading = false
|
|
|
+ this.funcModal = false
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.selectCommonUse()
|
|
|
}
|
|
|
- this.tableHalfCheckData = [data]
|
|
|
+ })
|
|
|
+ return excute;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 查询常用功能
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/22 14:16
|
|
|
+ */
|
|
|
+ selectCommonUse() {
|
|
|
+ let params = {
|
|
|
+ appCode:this.$config.appCode.WEB,
|
|
|
+ staffId:this.$store.state.user.staffId,
|
|
|
}
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 一周产量分析
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-12 15:58
|
|
|
- */
|
|
|
- getWeekOutPut() {
|
|
|
- let params = {
|
|
|
- ftyId: this.$store.state.user.ftyId,
|
|
|
- timeStart: this.weekOutputTimeStart,
|
|
|
- timeEnd: this.weekOutputTimeEnd
|
|
|
- }
|
|
|
- this.excute(this.$service.homeReportService, this.$service.homeReportService.getWeekOutPut, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- let col = []
|
|
|
- let list = []
|
|
|
- let data = {}
|
|
|
- for (let it of res.data) {
|
|
|
- data.date = it.opDate
|
|
|
- for (let item of it.res) {
|
|
|
- data = Object.assign(data, item)
|
|
|
- }
|
|
|
- list.push(data)
|
|
|
- col = col.concat(Object.keys(data))
|
|
|
- data = {}
|
|
|
+ this.excute(this.$service.appMenuService, this.$service.appMenuService.selectMenu,params).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.homeCommonUseList = res.data
|
|
|
}
|
|
|
- this.tableWeekOutputData = list
|
|
|
- this.tableWeekOutPutColumns = col.unique().map(m => {return {
|
|
|
- field: m, title: m === 'date' ? '日期':m
|
|
|
- }})
|
|
|
+ })
|
|
|
+ },
|
|
|
+ toPage(menu) {
|
|
|
+ this.$router.push({path: menu.menuTag.path})
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 滚动菜单
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/30 18:53
|
|
|
+ */
|
|
|
+ scrollCommonUseCard(e) {
|
|
|
+ for (let i = 0; i < 701; i++) {
|
|
|
+ setTimeout(function () {
|
|
|
+ if (e == 'left') {
|
|
|
+ document.getElementsByClassName('common-use-scroll')[0].scrollLeft--
|
|
|
+ } else {
|
|
|
+ document.getElementsByClassName('common-use-scroll')[0].scrollLeft++
|
|
|
+ }
|
|
|
+ }, 100 + i)
|
|
|
}
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 一周质量分析
|
|
|
- * @author : 洪旭东
|
|
|
- * @date : 2023-09-12 16:02
|
|
|
- */
|
|
|
- getWeekQuality () {
|
|
|
- let params = {
|
|
|
- ftyId: this.$store.state.user.ftyId,
|
|
|
- timeStart: this.weekQualityTimeStart,
|
|
|
- timeEnd: this.weekQualityTimeEnd
|
|
|
- }
|
|
|
- this.excute(this.$service.homeReportService, this.$service.homeReportService.getWeekQuality, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- let col = []
|
|
|
- let list = []
|
|
|
- let data = {}
|
|
|
- for (let it of res.data) {
|
|
|
- data.date = it.opDate
|
|
|
- for (let item of it.res) {
|
|
|
- data = Object.assign(data, item)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取常用功能的菜单
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/22 10:47
|
|
|
+ */
|
|
|
+ getCommonMenu(){
|
|
|
+ if(this.$store.state.app.menuList && this.$store.state.app.menuList.length > 0){
|
|
|
+ let menuList = [...this.$store.state.app.menuList]
|
|
|
+ let funcList = []
|
|
|
+ menuList.forEach(it =>{
|
|
|
+ let funcItem = {}
|
|
|
+ // 不包括首页
|
|
|
+ if(it.name != 'home'){
|
|
|
+ funcItem.name = it.name;
|
|
|
+ funcItem.menuUuid = it.menuUuid;
|
|
|
+ funcItem.parentUuid = it.parentUuid;
|
|
|
+ funcItem.meta = it.meta;
|
|
|
}
|
|
|
- list.push(data)
|
|
|
- col = col.concat(Object.keys(data))
|
|
|
- data = {}
|
|
|
- }
|
|
|
- this.tableWeekQualityData = list
|
|
|
- this.tableWeekQualityColumns = col.unique().map(m => {return {
|
|
|
- field: m, title: m === 'date' ? '日期':m
|
|
|
- }})
|
|
|
+ // 查询子级
|
|
|
+ if(it.children && it.children.length > 0){
|
|
|
+ let funcListChilds = this.getCommonChild(it.children);
|
|
|
+ if(funcListChilds && funcListChilds.length > 0){
|
|
|
+ funcItem.children = funcListChilds;
|
|
|
+ funcList.push(funcItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.funcList = funcList;
|
|
|
}
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 设置预警信息
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/8/30 9:27
|
|
|
- */
|
|
|
- setHomeWarning() {
|
|
|
- this.settingModal = true
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 加载预警设置信息
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/8/30 13:35
|
|
|
- */
|
|
|
- getHomeWarningSet() {
|
|
|
- let param = {
|
|
|
- ftyId: this.$store.state.user.ftyId
|
|
|
- }
|
|
|
- this.settingModalLoading = true;
|
|
|
- this.excute(this.$service.homeWarningSetService, this.$service.homeWarningSetService.selectByCond, param).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- if (res.data && res.data.list) {
|
|
|
- // 产量数据源
|
|
|
- this.warningSettingFormData = res.data.list.filter(it => it.warningType === 0);
|
|
|
- // 质量数据
|
|
|
- this.warningSettingFormData_qa = res.data.list.filter(it => it.warningType === 1);
|
|
|
- // 质量需要设置名称
|
|
|
- this.warningSettingFormData_qa.forEach(it => {
|
|
|
- this.$set(it, 'qualityType_Name', it.qualityKindName)
|
|
|
- })
|
|
|
- this.currentRowIndex = 0;
|
|
|
- } else {
|
|
|
- this.warningSettingFormData = []
|
|
|
- this.warningSettingFormData_qa = []
|
|
|
- }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取子级的菜单
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/22 11:11
|
|
|
+ */
|
|
|
+ getCommonChild(children){
|
|
|
+ let funcList = []
|
|
|
+ if(children && children.length > 0){
|
|
|
+ children.forEach(it=>{
|
|
|
+ // 说明要需要进行快捷的菜单
|
|
|
+ let funcItem = {}
|
|
|
+ funcItem.name = it.name;
|
|
|
+ funcItem.meta = it.meta;
|
|
|
+ funcItem.menuUuid = it.menuUuid;
|
|
|
+ funcItem.parentUuid = it.parentUuid;
|
|
|
+ funcList.push(funcItem);
|
|
|
+ // 如果还有子级,需要去查询子级
|
|
|
+ if(it.children && it.children.length > 0){
|
|
|
+ let funcListChilds = this.getCommonChild(it.children);
|
|
|
+ if(funcListChilds && funcListChilds.length > 0){
|
|
|
+ funcListChilds.forEach(c=>{
|
|
|
+ if(c.parentUuid){
|
|
|
+ let index = funcList.findIndex(item => c.parentUuid === item.menuUuid);
|
|
|
+ if(index >= 0){
|
|
|
+ funcList.splice(index + 1,0,c);
|
|
|
+ }else{
|
|
|
+ funcList.push(c);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ funcList.push(c);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
- this.settingModalLoading = false;
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 获取质量
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/6 17:04
|
|
|
- */
|
|
|
- getQualityTypeData() {
|
|
|
- // 读取系统字典
|
|
|
- let dataKindList =this.$store.state.user.dataKindList
|
|
|
- let data = dataKindList.filter(it=>it.kindType == this.$config.kindType.qualityType)
|
|
|
- this.qualityTypeData = data;
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 行切换
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/9/1 16:41
|
|
|
- */
|
|
|
- warnCurrentChange({row}) {
|
|
|
- if (row != null) {
|
|
|
- this.currentWarningType = row.warningType;
|
|
|
- this.currentRowIndex = 0;
|
|
|
- // 结束编辑状态
|
|
|
- if (row.warningType === 0) {
|
|
|
- this.$refs['warnTable_quality'].$refs['xTable'].clearActived();
|
|
|
- this.$refs['warnTable_quality'].$refs['xTable'].clearCurrentRow();
|
|
|
+ return funcList;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 常用功能弹窗全部清空
|
|
|
+ * @date : 2024/4/29 13:58
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ clearAll(){
|
|
|
+ this.rightFuncList.forEach(it=>{
|
|
|
+ this.funcCheckBoxChangeRight('name-'+it.menuUuid)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ funcCheckBoxChangeRight(name){
|
|
|
+ this.$refs[name][0].$el.click()
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 常用功能弹窗左侧选择事件
|
|
|
+ * @date : 2024/4/29 14:00
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ funcCheckBoxChange(flag, item) {
|
|
|
+ // menuUuid
|
|
|
+ if (flag) {
|
|
|
+ this.rightFuncList.push(item)
|
|
|
} else {
|
|
|
- this.$refs['warnTable_quantity'].$refs['xTable'].clearActived();
|
|
|
- this.$refs['warnTable_quantity'].$refs['xTable'].clearCurrentRow();
|
|
|
+ this.rightFuncList = this.rightFuncList.filter(it => it.menuUuid !== item.menuUuid)
|
|
|
}
|
|
|
- }
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 校验数据
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/6 15:57
|
|
|
- */
|
|
|
- validData() {
|
|
|
- // 产量类型的预警,预警名称必须填写,工序必须选择
|
|
|
- return new Promise(resolve => {
|
|
|
- let table = this.$refs['warnTable_quantity'].getTableDataFilter();
|
|
|
- let filters = table.filter(it => !it.warningName);
|
|
|
- // 名称有为空
|
|
|
- if (filters && filters.length > 0) {
|
|
|
- this.$Message.warning(this.$t('W_042', {'param': this.$t('warningName')}))
|
|
|
- resolve(false)
|
|
|
- return;
|
|
|
+ },
|
|
|
+ /****************************************常用功能****************************************/
|
|
|
+
|
|
|
+ /****************************************待办功能****************************************/
|
|
|
+ /**
|
|
|
+ * @desc : 待办切换
|
|
|
+ * @date : 2024/4/28 17:01
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ detailTabsClick(val) {
|
|
|
+ this.detailModel= val
|
|
|
+ //销售
|
|
|
+ if (val === 'sale') {
|
|
|
+ this.saleFlag = true
|
|
|
+ this.inventoryFlag = false
|
|
|
+ this.fundFlag = false
|
|
|
}
|
|
|
- // 工序为空
|
|
|
- filters = table.filter(it => !it.flowList || it.flowList.length === 0);
|
|
|
- if (filters && filters.length > 0) {
|
|
|
- this.$Message.warning(this.$t('W_069', {'param': this.$t('flowNodeName')}))
|
|
|
- resolve(false)
|
|
|
- return;
|
|
|
+ //库存
|
|
|
+ else if (val === 'inventory') {
|
|
|
+ this.saleFlag = false
|
|
|
+ this.inventoryFlag = true
|
|
|
+ this.fundFlag = false
|
|
|
}
|
|
|
- resolve(true)
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 给参数赋值
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/6 16:24
|
|
|
- */
|
|
|
- setParams() {
|
|
|
- let table_quantity = this.$refs['warnTable_quantity'].getTableDataFilter();//0
|
|
|
- let table_quality = this.$refs['warnTable_quality'].getTableDataFilter();//1
|
|
|
- if (table_quantity && table_quantity.length > 0) {
|
|
|
- table_quantity.forEach(it => {
|
|
|
- it.warningType = 0;
|
|
|
- it.ftyId = this.$store.state.user.ftyId;
|
|
|
+ //资金
|
|
|
+ else if(val === 'fund'){
|
|
|
+ this.saleFlag = false
|
|
|
+ this.inventoryFlag = false
|
|
|
+ this.fundFlag = true
|
|
|
+ }
|
|
|
+ //查询待办个数
|
|
|
+ this.selectPending()
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 刷新待办中心数据
|
|
|
+ * @date : 2024/4/29 11:04
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ refreshWaitCenter(){
|
|
|
+ //查询待办个数
|
|
|
+ this.selectPending()
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 查询待办个数
|
|
|
+ * @date : 2024/4/28 17:25
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ selectPending(){
|
|
|
+ //订单
|
|
|
+ if(this.detailModel ==='sale'){
|
|
|
+ let params = {
|
|
|
+ appCode:this.$config.appCode.WEB,
|
|
|
+ orderStatusList:[this.$config.outStatus.daiChuKu,this.$config.outStatus.chuKuZhong],
|
|
|
+ }
|
|
|
+ this.excute(this.$service.orderService, this.$service.orderService.countOrderByCond,params).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.orderCount = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //出入库
|
|
|
+ else if(this.detailModel ==='inventory'){
|
|
|
+ //入库
|
|
|
+ let intoParams = {
|
|
|
+ appCode:this.$config.appCode.WEB,
|
|
|
+ }
|
|
|
+ this.excute(this.$service.otherInboundService, this.$service.otherInboundService.selectWaitInboundCount,intoParams).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.intoCount = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ //出库
|
|
|
+ let outParams = {
|
|
|
+ appCode:this.$config.appCode.WEB,
|
|
|
+ }
|
|
|
+ this.excute(this.$service.otherOutboundService, this.$service.otherOutboundService.selectWaitOutboundCount,outParams).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.outCount = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //资金
|
|
|
+ else if(this.detailModel ==='fund'){
|
|
|
+ let params = {
|
|
|
+ appCode: this.$config.appCode.WEB,
|
|
|
+ amtResidueZeroFlg: true,
|
|
|
+ accItemType: this.$config.fundType.yingShou,
|
|
|
+ }
|
|
|
+ this.excute(this.$service.accountService, this.$service.accountService.getReceivableAccountItemCount, params).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.fundCount = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 打开抽屉
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-02 17:27
|
|
|
+ */
|
|
|
+ openDrawer(type) {
|
|
|
+ let drawer = document.getElementsByClassName('ivu-drawer-bottom')
|
|
|
+ let leftSider = document.getElementsByClassName('left-sider')
|
|
|
+ if (drawer && leftSider && drawer[0] && leftSider[0]) {
|
|
|
+ // console.log(document.body.clientWidth, leftSider[0].getBoundingClientRect().width)
|
|
|
+ drawer[0].style.width = (document.body.clientWidth - leftSider[0].getBoundingClientRect().width) + 'px'
|
|
|
+ }
|
|
|
+ if (type === this.$config.homeDrawType.notice) {
|
|
|
+ // 获取未读公告
|
|
|
+ this.selectManagement();
|
|
|
+ }
|
|
|
+ // let self = this;
|
|
|
+ // switch (type){
|
|
|
+ // case self.$config.homeDrawType.waitAudit:
|
|
|
+ // this.drawerTitle = "待审中心";
|
|
|
+ // break;
|
|
|
+ // case self.$config.homeDrawType.notice:
|
|
|
+ // this.drawerTitle = "系统公告";
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ this.drawType = type;
|
|
|
+ this.drawerShow = true
|
|
|
+ },
|
|
|
+ /****************************************待办功能****************************************/
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc : 打开审批一览页面
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/9/2 14:15
|
|
|
+ */
|
|
|
+ openApprovalIndex(){
|
|
|
+ this.$router.push('/approval/waiting-for-approval/index');
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 过滤需要显示的菜单
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/22 9:49
|
|
|
+ */
|
|
|
+ filterShowMenu(arr, list) {
|
|
|
+ arr.children = list.filter(it => it.meta && !it.meta.hideInMenu)
|
|
|
+ arr.children.forEach(it => {
|
|
|
+ // it.meta.url = '../../../assets/images/' + (it.meta.image?it.meta.image:'func-icon.png');
|
|
|
+ if(!it.meta.image){
|
|
|
+ it.meta.image = 'func-icon.png';
|
|
|
+ }
|
|
|
+ if (it.children && it.children.length > 0) {
|
|
|
+ this.filterShowMenu(it, it.children)
|
|
|
+ }
|
|
|
})
|
|
|
- }
|
|
|
- if (table_quality && table_quality.length > 0) {
|
|
|
- table_quality.forEach(it => {
|
|
|
- // 质量的工序为空
|
|
|
- it.flowList = []
|
|
|
- it.warningType = 1;
|
|
|
- it.ftyId = this.$store.state.user.ftyId;
|
|
|
+ return arr
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 切换销售简报模式
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-02 15:32
|
|
|
+ */
|
|
|
+ changeSalesReportModel() {
|
|
|
+ this.salesReportType = this.salesReportType == 1 ? 2 : 1
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 我的业绩目标
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-02 14:09
|
|
|
+ */
|
|
|
+ drawPerformance1() {
|
|
|
+ let echarts = require('echarts')
|
|
|
+ let echarts1 = echarts.init(document.getElementById('echarts1'))
|
|
|
+ echarts1.setOption(
|
|
|
+ {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item',
|
|
|
+ // formatter: '{a} <br/>{b}: {c} ({d}%)'
|
|
|
+ },
|
|
|
+ title: {
|
|
|
+ show: true,
|
|
|
+ text: '报备客户'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ center: ['50%', '80%'],
|
|
|
+ axisLabel: {
|
|
|
+ formatter: '{value}%'
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ splitNumber: 2
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: [
|
|
|
+ [1, '#3cd343']
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ pointer: {
|
|
|
+ length: '60%',
|
|
|
+ width: 4
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ color: '#3cd343',
|
|
|
+ borderColor: 'lightgreen',
|
|
|
+ },
|
|
|
+ splitNumber: 4,
|
|
|
+ radius: '100%',
|
|
|
+ startAngle: 180,
|
|
|
+ endAngle: 0,
|
|
|
+ name: '报备客户',
|
|
|
+ type: 'gauge',
|
|
|
+ process: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ detail: {
|
|
|
+ show: false,
|
|
|
+ valueAnimation: true,
|
|
|
+ // formatter: '{value}%'
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ {value: 100, name: ''},
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 我的业绩目标
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-02 14:09
|
|
|
+ */
|
|
|
+ drawPerformance2() {
|
|
|
+ let echarts = require('echarts')
|
|
|
+ let echarts1 = echarts.init(document.getElementById('echarts2'))
|
|
|
+ echarts1.setOption(
|
|
|
+ {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item',
|
|
|
+ // formatter: '{a} <br/>{b}: {c} ({d}%)'
|
|
|
+ },
|
|
|
+ title: {
|
|
|
+ show: true,
|
|
|
+ text: '订货额'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ center: ['50%', '80%'],
|
|
|
+ axisLabel: {
|
|
|
+ formatter: '{value}%'
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ splitNumber: 2
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: [
|
|
|
+ [1, '#3cd343']
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ pointer: {
|
|
|
+ length: '60%',
|
|
|
+ width: 4
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ color: '#3cd343',
|
|
|
+ borderColor: 'lightgreen',
|
|
|
+ },
|
|
|
+ splitNumber: 4,
|
|
|
+ radius: '100%',
|
|
|
+ startAngle: 180,
|
|
|
+ endAngle: 0,
|
|
|
+ name: '订货额',
|
|
|
+ type: 'gauge',
|
|
|
+ process: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ detail: {
|
|
|
+ show: false,
|
|
|
+ valueAnimation: true,
|
|
|
+ // formatter: '{value}%'
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ {value: 100, name: ''},
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 我的业绩目标
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-02 14:09
|
|
|
+ */
|
|
|
+ drawPerformance3() {
|
|
|
+ let echarts = require('echarts')
|
|
|
+ let echarts1 = echarts.init(document.getElementById('echarts3'))
|
|
|
+ echarts1.setOption(
|
|
|
+ {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item',
|
|
|
+ // formatter: '{a} <br/>{b}: {c} ({d}%)'
|
|
|
+ },
|
|
|
+ title: {
|
|
|
+ show: true,
|
|
|
+ text: '回款额'
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ center: ['50%', '80%'],
|
|
|
+ axisLabel: {
|
|
|
+ formatter: '{value}%'
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ splitNumber: 2
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: [
|
|
|
+ [1, '#3cd343']
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ pointer: {
|
|
|
+ length: '60%',
|
|
|
+ width: 4
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ color: '#3cd343',
|
|
|
+ borderColor: 'lightgreen',
|
|
|
+ },
|
|
|
+ splitNumber: 4,
|
|
|
+ radius: '100%',
|
|
|
+ startAngle: 180,
|
|
|
+ endAngle: 0,
|
|
|
+ name: '回款额',
|
|
|
+ type: 'gauge',
|
|
|
+ process: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ detail: {
|
|
|
+ show: false,
|
|
|
+ valueAnimation: true,
|
|
|
+ // formatter: '{value}%'
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ {value: 100, name: ''},
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 跳页
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-02 11:51
|
|
|
+ */
|
|
|
+ jumpTo() {
|
|
|
+ this.$router.push('/sale/order')
|
|
|
+ },
|
|
|
+ getMonthDays(date) {
|
|
|
+ date = date || new Date()
|
|
|
+ const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0)
|
|
|
+ const days = temp.getDate()
|
|
|
+ return days
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 待办滚动
|
|
|
+ * @author : 洪旭东
|
|
|
+ * @date : 2022-05-03 17:21
|
|
|
+ */
|
|
|
+ scrollUpcomingCard(e) {
|
|
|
+ for (let i = 0; i < 701; i++) {
|
|
|
+ setTimeout(function () {
|
|
|
+ if (e == 'left') {
|
|
|
+ document.getElementsByClassName('upcoming')[0].scrollLeft--
|
|
|
+ } else {
|
|
|
+ document.getElementsByClassName('upcoming')[0].scrollLeft++
|
|
|
+ }
|
|
|
+ }, 100 + i)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getText(str) {
|
|
|
+ let words = str.replace(/<[^<>]+>/g, "").replace(/ /gi, ""); //这里是去除标签
|
|
|
+ return words.replace(/\s/g, "") //这里是去除空格
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 跳转到公告
|
|
|
+ * @date : 2022/8/16 10:29
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ returnMessage() {
|
|
|
+ this.$router.push('../../mst/notice-list/index')
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 跳转公告明细
|
|
|
+ * @date : 2022/8/16 11:48
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ returnMessageDetail(value) {
|
|
|
+ this.$router.push('../../mst/notice-list/detail/' + value.noticeId)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取待审中心条数
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/20 14:50
|
|
|
+ */
|
|
|
+ getApprovalCount() {
|
|
|
+ // 参数设置
|
|
|
+ let params = {
|
|
|
+ cpId: this.$store.state.user.cpId,
|
|
|
+ userId: this.$store.state.user.id,
|
|
|
+ querys: Object.assign({treeFlag: true}, this.searchList)
|
|
|
+ }
|
|
|
+ waitingForApprovalService.getApprovalCount(params).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.approvalCount = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.message)
|
|
|
+ }
|
|
|
})
|
|
|
- }
|
|
|
- let columns = ['setId', 'warningType', 'warningName', 'qualityType', 'flowNodeId', 'remarks', 'displayNo', 'ftyId']
|
|
|
- let table = table_quantity.union(table_quality)?.filterColumns(columns);//新建编辑
|
|
|
- let del0 = this.$refs['warnTable_quantity'].getDeleteData()
|
|
|
- let del1 = this.$refs['warnTable_quality'].getDeleteData()
|
|
|
- let delTable = del0.union(del1)?.filterColumns(['setId'])
|
|
|
- let params = {}
|
|
|
- params.updateList = table;
|
|
|
- params.delList = delTable;
|
|
|
- return params;
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 保存
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/9/1 16:41
|
|
|
- */
|
|
|
- saveData() {
|
|
|
- this.validData().then(res => {
|
|
|
- if (!res) {
|
|
|
- return;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 查询公告
|
|
|
+ * @date : 2022/8/16 9:50
|
|
|
+ * @author : 寇珊珊
|
|
|
+ */
|
|
|
+ selectManagement() {
|
|
|
+ // 参数设置
|
|
|
+ let params = {}
|
|
|
+ if (this.$store.state.user.sysId != this.$config.sysType.SYS_HEGII) {
|
|
|
+ params.cpId = this.$store.state.user.cpId
|
|
|
+ params.sysId = this.$store.state.user.sysId
|
|
|
}
|
|
|
- this.settingModalLoading = true;
|
|
|
- let params = this.setParams();
|
|
|
- this.excute(this.$service.homeWarningSetService, this.$service.homeWarningSetService.insertOrUpdate, params).then(res => {
|
|
|
- if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
- this.$Message.success(this.$t('I_002'))
|
|
|
- // 重新调取查询方法
|
|
|
- this.getHomeWarningSet();
|
|
|
- // 查询预警数据
|
|
|
- this.getHomeWarning();
|
|
|
+ params.limit = 5; // 限制公告条数
|
|
|
+ params.userId = this.$store.state.user.id
|
|
|
+ // 查询公告分类接口
|
|
|
+ noticeManagementService.getNotice(params).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.managementTableData = res.data
|
|
|
} else {
|
|
|
- this.$Message.warning(res.message)
|
|
|
+ this.$message.error(res.message)
|
|
|
}
|
|
|
- this.settingModalLoading = false;
|
|
|
})
|
|
|
- })
|
|
|
- },
|
|
|
- /**
|
|
|
- * @desc : 打开modal
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/6 14:40
|
|
|
- */
|
|
|
- onVisibleChange(e) {
|
|
|
- if (e) {
|
|
|
- // 获取预警设置信息
|
|
|
- this.getHomeWarningSet();
|
|
|
- // 获取质量类型
|
|
|
- this.getQualityTypeData();
|
|
|
- }
|
|
|
- }
|
|
|
- ,
|
|
|
- /**
|
|
|
- * @desc : 工序行切换
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/9/4 15:46
|
|
|
- */
|
|
|
- currentFlow(e) {
|
|
|
- this.currentRowIndex = e.rowIndex;
|
|
|
- }
|
|
|
- ,
|
|
|
- /**
|
|
|
- * @desc : 工序改变值
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/9/5 9:01
|
|
|
- */
|
|
|
- chooseFlowValue() {
|
|
|
- this.$nextTick(() => {
|
|
|
- let table = this.$refs.flowNode.getTableDataFilter();
|
|
|
- let filters = table.map(it => it.nodeId);
|
|
|
- this.$set(this.warningSettingFormData[this.currentRowIndex], 'flowList', table);
|
|
|
- this.$set(this.warningSettingFormData[this.currentRowIndex], 'flowNodeId', filters);
|
|
|
- })
|
|
|
- }
|
|
|
- ,
|
|
|
- /**
|
|
|
- * @desc : 选择质量类型
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/7 15:50
|
|
|
- */
|
|
|
- chooseQualityType(row, rowIndex) {
|
|
|
- this.$set(this.warningSettingFormData_qa[rowIndex], 'warningName', row['qualityType_Name'])
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取未读公告数量
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2022/8/20 14:50
|
|
|
+ */
|
|
|
+ getUnreadNoticeCount() {
|
|
|
+ // 参数设置
|
|
|
+ let params = {}
|
|
|
+ if (this.$store.state.user.sysId != this.$config.sysType.SYS_HEGII) {
|
|
|
+ params.cpId = this.$store.state.user.cpId
|
|
|
+ params.sysId = this.$store.state.user.sysId
|
|
|
+ }
|
|
|
+ params.userId = this.$store.state.user.id
|
|
|
+ noticeManagementService.getUnreadNoticeCount(params).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.unReadNoticeCount = res.data;
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
},
|
|
|
- /**
|
|
|
- * @desc : 删除工序事件
|
|
|
- * @author : 王曦平
|
|
|
- * @date : 2023/9/5 13:27
|
|
|
- */
|
|
|
- flowDelRow(row, rowIndex) {
|
|
|
- this.chooseFlowValue(); // 重新给产量工序赋值
|
|
|
- }
|
|
|
- ,
|
|
|
- /**
|
|
|
- * @desc : 删除预警行
|
|
|
- * @author : 周兴
|
|
|
- * @date : 2023/9/7 15:18
|
|
|
- */
|
|
|
- warnDelRow(row, rowIndex) {
|
|
|
- this.warningSettingFormData = this.warningSettingFormData.filter((it, index) => index != rowIndex);
|
|
|
- let table = this.$refs['warnTable_quantity'].getTableData();
|
|
|
- if (table && this.currentRowIndex >= table.length) {
|
|
|
- this.currentRowIndex = this.currentRowIndex - 1;
|
|
|
- }
|
|
|
+ created() {
|
|
|
+ this.routeObjName = 'appMenu' // 设置路由名称
|
|
|
+ this.getCommonMenu(); // 获取常用功能的菜单
|
|
|
+ this.selectCommonUse();//查询常用功能
|
|
|
+ this.selectPending();//获取代办事项个数
|
|
|
+ // this.getApprovalCount();// 获取待审中心数据
|
|
|
+ // this.getUnreadNoticeCount();// 获取未读公告条数
|
|
|
+ this.waitApprovalRight =this.$libaray.checkButtonHasRight('wait-approval')
|
|
|
},
|
|
|
- // endregion
|
|
|
- },
|
|
|
- created() {
|
|
|
- // this.getHomeWarning();// 获取预警数据
|
|
|
- // //查询半检、成检缺陷TOP5
|
|
|
- // this.getTopFiveHalfCheckDefect()
|
|
|
- // this.getTopFiveCheckDefect()
|
|
|
- this.routeObjName = 'home' // 设置路由名称
|
|
|
- this.primaryKey = 'setId' // 设置主键Id
|
|
|
- },
|
|
|
-}
|
|
|
+ }
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
-@cell_height: 30px;
|
|
|
-.func-item-title {
|
|
|
- font-size: 12px;
|
|
|
- margin-top: 5px;
|
|
|
-}
|
|
|
-
|
|
|
-/deep/ .ttt > .ivu-checkbox {
|
|
|
- position: absolute !important;
|
|
|
- z-index: 1;
|
|
|
- right: 24%;
|
|
|
- top: -8%;
|
|
|
-}
|
|
|
-
|
|
|
-.draggable-div[draggable=true] {
|
|
|
- //opacity: 0 !important;
|
|
|
-}
|
|
|
+ .func-item-title {
|
|
|
+ font-size: 12px;
|
|
|
+ margin-top: 5px;
|
|
|
+ }
|
|
|
|
|
|
-.modal-left-div::-webkit-scrollbar {
|
|
|
- width: 5px;
|
|
|
-}
|
|
|
+ /deep/.ivu-tabs-nav .ivu-tabs-tab {
|
|
|
+ bottom: 5px;
|
|
|
+ font-size: 14px !important;
|
|
|
+ }
|
|
|
|
|
|
-.modal-left-div::-webkit-scrollbar-track {
|
|
|
- width: 5px !important;
|
|
|
- background: #dcdcdc;
|
|
|
- border-radius: 10px;
|
|
|
-}
|
|
|
+ /deep/ .ttt > .ivu-checkbox {
|
|
|
+ position: absolute !important;
|
|
|
+ z-index: 1;
|
|
|
+ right: 24%;
|
|
|
+ top: -8%;
|
|
|
+ }
|
|
|
|
|
|
-.modal-left-div::-webkit-scrollbar-thumb {
|
|
|
- width: 5px;
|
|
|
- background: #b6b6b6;
|
|
|
- border-radius: 10px;
|
|
|
-}
|
|
|
+ .draggable-div[draggable=true] {
|
|
|
+ //opacity: 0 !important;
|
|
|
+ }
|
|
|
|
|
|
-//Card标签
|
|
|
-.card {
|
|
|
- margin-top: 8px;
|
|
|
- overflow-x: auto;
|
|
|
-}
|
|
|
+ .modal-left-div::-webkit-scrollbar {
|
|
|
+ width: 5px;
|
|
|
+ }
|
|
|
|
|
|
-//圆形按钮
|
|
|
-.circle-button {
|
|
|
- font-size: 20px !important;
|
|
|
- margin-left: 5px;
|
|
|
- margin-right: 5px;
|
|
|
-}
|
|
|
+ .modal-left-div::-webkit-scrollbar-track {
|
|
|
+ width: 5px !important;
|
|
|
+ background: #dcdcdc;
|
|
|
+ border-radius: 10px;
|
|
|
+ }
|
|
|
|
|
|
-//待办
|
|
|
-.upcoming {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- overflow-x: auto;
|
|
|
- transition: scrollLeft 2s;
|
|
|
- padding: 10px;
|
|
|
+ .modal-left-div::-webkit-scrollbar-thumb {
|
|
|
+ width: 5px;
|
|
|
+ background: #b6b6b6;
|
|
|
+ border-radius: 10px;
|
|
|
+ }
|
|
|
|
|
|
- .upcoming-card {
|
|
|
- height: 100px;
|
|
|
- min-width: 140px;
|
|
|
- //background-color: #f4f8ff;
|
|
|
- background-color: #2D8CF0;
|
|
|
- color: #fff;
|
|
|
- padding: 15px 0 10px 0;
|
|
|
- margin-right: 20px;
|
|
|
- cursor: pointer;
|
|
|
- border-radius: 15px;
|
|
|
- display: flex;
|
|
|
- box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.5);
|
|
|
- //margin-bottom: 10px;
|
|
|
+ //Card标签
|
|
|
+ .card {
|
|
|
+ margin-top: 8px;
|
|
|
+ }
|
|
|
|
|
|
- .upcoming-card-icon {
|
|
|
- padding: 16px 0;
|
|
|
- width: 50px;
|
|
|
- }
|
|
|
+ //圆形按钮
|
|
|
+ .circle-button {
|
|
|
+ font-size: 20px !important;
|
|
|
+ margin-left: 5px;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
|
|
|
- .upcoming-card-right {
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
+ //待办
|
|
|
+ .upcoming {
|
|
|
+ width: 100%;
|
|
|
+ display: -webkit-inline-box;
|
|
|
+ overflow-x: auto;
|
|
|
+ transition: scrollLeft 2s;
|
|
|
+ padding-bottom: 10px;
|
|
|
+
|
|
|
+ .upcoming-card {
|
|
|
+ height: 100px;
|
|
|
+ width: 200px;
|
|
|
+ background-color: #f4f8ff;
|
|
|
+ padding: 20px 10px 30px 10px;
|
|
|
+ margin-right: 20px;
|
|
|
+ cursor: pointer;
|
|
|
+ border-radius: 15px;
|
|
|
+ //margin-bottom: 10px;
|
|
|
+
|
|
|
+ .upcoming-card-icon {
|
|
|
+ //todo 2024年4月29日13:56:25 注释掉
|
|
|
+ /*padding: 16px 0;*/
|
|
|
+ }
|
|
|
|
|
|
- .upcoming-card-number {
|
|
|
- font-size: 26px;
|
|
|
- font-weight: bolder;
|
|
|
- display: flex !important;
|
|
|
- justify-content: center;
|
|
|
- }
|
|
|
+ .upcoming-card-number {
|
|
|
+ font-size: 26px;
|
|
|
+ padding-left: 10px;
|
|
|
+ font-weight: bolder;
|
|
|
+ }
|
|
|
|
|
|
- .upcoming-card-text {
|
|
|
- font-size: 13px;
|
|
|
- font-weight: 500;
|
|
|
- display: flex !important;
|
|
|
- justify-content: center;
|
|
|
+ .upcoming-card-text {
|
|
|
+ font-size: 13px;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-.card-upcoming /deep/ .ivu-card-body {
|
|
|
- padding-bottom: 0 !important;
|
|
|
-
|
|
|
-}
|
|
|
|
|
|
-//图表
|
|
|
-.echarts {
|
|
|
- width: 300px;
|
|
|
- height: 200px
|
|
|
-}
|
|
|
-
|
|
|
-// 销售简报radio数字
|
|
|
-.sales-report-radio-number {
|
|
|
- position: relative;
|
|
|
- right: 50px;
|
|
|
-}
|
|
|
-
|
|
|
-// 销售简报radio选中的文字
|
|
|
-.sales-report-radio-checked {
|
|
|
- font-weight: bolder;
|
|
|
-}
|
|
|
-
|
|
|
-// 销售简报右侧col
|
|
|
-.sales-report-col {
|
|
|
- padding-right: 10px;
|
|
|
- padding-top: 10px;
|
|
|
-}
|
|
|
-
|
|
|
-// 销售简报card 个数 数字
|
|
|
-.sales-report-card-number {
|
|
|
- color: grey;
|
|
|
-}
|
|
|
+ .upcoming::-webkit-scrollbar {
|
|
|
+ width: 0;
|
|
|
+ }
|
|
|
|
|
|
-// 销售简报card 钱数 数字
|
|
|
-.sales-report-card-money {
|
|
|
- color: orange;
|
|
|
-}
|
|
|
+ .card-upcoming /deep/ .ivu-card-body {
|
|
|
+ padding-bottom: 0 !important;
|
|
|
|
|
|
-// 销售简报 简略模式card
|
|
|
-.sales-report-simple-card {
|
|
|
- margin: 10px;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-// 销售简报 简略模式 文字
|
|
|
-.sales-report-simple-card-text {
|
|
|
- font-weight: bolder;
|
|
|
-}
|
|
|
+ //图表
|
|
|
+ .echarts {
|
|
|
+ width: 300px;
|
|
|
+ height: 200px
|
|
|
+ }
|
|
|
|
|
|
-.sales-report-simple-card-text2 {
|
|
|
- color: grey;
|
|
|
-}
|
|
|
+ // 销售简报radio数字
|
|
|
+ .sales-report-radio-number {
|
|
|
+ position: relative;
|
|
|
+ right: 50px;
|
|
|
+ }
|
|
|
|
|
|
-.sales-report-simple-card-text3 {
|
|
|
- color: orange;
|
|
|
-}
|
|
|
+ // 销售简报radio选中的文字
|
|
|
+ .sales-report-radio-checked {
|
|
|
+ font-weight: bolder;
|
|
|
+ }
|
|
|
|
|
|
-// 销售助手 card 外 col
|
|
|
-.sales-helper-col {
|
|
|
- padding: 5px;
|
|
|
-}
|
|
|
+ // 销售简报右侧col
|
|
|
+ .sales-report-col {
|
|
|
+ padding-right: 10px;
|
|
|
+ padding-top: 10px;
|
|
|
+ }
|
|
|
|
|
|
-// 销售助手 card
|
|
|
-.sales-helper-card {
|
|
|
- background-color: #f7f7f9;
|
|
|
- padding: 5px;
|
|
|
-}
|
|
|
+ // 销售简报card 个数 数字
|
|
|
+ .sales-report-card-number {
|
|
|
+ color: grey;
|
|
|
+ }
|
|
|
|
|
|
-// 销售助手 card 第一行
|
|
|
-.sales-helper-card-icon-title {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
-}
|
|
|
+ // 销售简报card 钱数 数字
|
|
|
+ .sales-report-card-money {
|
|
|
+ color: orange;
|
|
|
+ }
|
|
|
|
|
|
-// 销售助手 card 标题
|
|
|
-.sales-helper-card-title {
|
|
|
- line-height: 34px;
|
|
|
- margin-left: 10px;
|
|
|
-}
|
|
|
+ // 销售简报 简略模式card
|
|
|
+ .sales-report-simple-card {
|
|
|
+ margin: 10px;
|
|
|
+ }
|
|
|
|
|
|
-// 销售助手 card 内容 蓝色
|
|
|
-.sales-helper-card-content {
|
|
|
- margin-top: 10px;
|
|
|
- color: #71a6ec;
|
|
|
-}
|
|
|
+ // 销售简报 简略模式 文字
|
|
|
+ .sales-report-simple-card-text {
|
|
|
+ font-weight: bolder;
|
|
|
+ }
|
|
|
|
|
|
-// 销售助手 card 内容 灰色
|
|
|
-.sales-helper-card-content2 {
|
|
|
- margin-top: 10px;
|
|
|
- color: grey;
|
|
|
-}
|
|
|
+ .sales-report-simple-card-text2 {
|
|
|
+ color: grey;
|
|
|
+ }
|
|
|
|
|
|
-// 底部抽屉
|
|
|
-/deep/ .ivu-drawer-bottom {
|
|
|
- right: 0;
|
|
|
- bottom: 0;
|
|
|
- top: unset;
|
|
|
-}
|
|
|
+ .sales-report-simple-card-text3 {
|
|
|
+ color: orange;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-tabs-tab {
|
|
|
- bottom: 10px;
|
|
|
- font-size: 18px !important;
|
|
|
-}
|
|
|
+ // 销售助手 card 外 col
|
|
|
+ .sales-helper-col {
|
|
|
+ padding: 5px;
|
|
|
+ }
|
|
|
|
|
|
-.ivu-row {
|
|
|
- display: flex;
|
|
|
-}
|
|
|
+ // 销售助手 card
|
|
|
+ .sales-helper-card {
|
|
|
+ background-color: #f7f7f9;
|
|
|
+ padding: 5px;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-list {
|
|
|
- height: 245px !important;
|
|
|
- overflow-y: auto;
|
|
|
-}
|
|
|
+ // 销售助手 card 第一行
|
|
|
+ .sales-helper-card-icon-title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-list-item-meta-title {
|
|
|
- margin-bottom: 2px !important;
|
|
|
- font-size: 15px !important;
|
|
|
- cursor: pointer;
|
|
|
- text-decoration: underline;
|
|
|
-}
|
|
|
+ // 销售助手 card 标题
|
|
|
+ .sales-helper-card-title {
|
|
|
+ line-height: 34px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-list-item {
|
|
|
- padding: 10px 0 0 0 !important;
|
|
|
-}
|
|
|
+ // 销售助手 card 内容 蓝色
|
|
|
+ .sales-helper-card-content {
|
|
|
+ margin-top: 10px;
|
|
|
+ color: #71a6ec;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-list-item-meta-content {
|
|
|
- width: 100%;
|
|
|
-}
|
|
|
+ // 销售助手 card 内容 灰色
|
|
|
+ .sales-helper-card-content2 {
|
|
|
+ margin-top: 10px;
|
|
|
+ color: grey;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-list-item-meta {
|
|
|
- margin-bottom: 6px !important;
|
|
|
-}
|
|
|
+ // 底部抽屉
|
|
|
+ /deep/ .ivu-drawer-bottom {
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ top: unset;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-list-item-meta-description {
|
|
|
- //width: 253px;
|
|
|
- font-size: 12px;
|
|
|
- line-height: 22px;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- white-space: nowrap;
|
|
|
-}
|
|
|
+ /deep/ .ivu-tabs-tab {
|
|
|
+ bottom: 10px;
|
|
|
+ font-size: 18px !important;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-checkbox-checked .ivu-checkbox-inner {
|
|
|
- background-color: #1B365D !important;
|
|
|
- border-color: #1B365D !important;
|
|
|
-}
|
|
|
+ .ivu-row {
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
|
|
|
-.clear-btn {
|
|
|
- border: #b6b6b6 1px dashed;
|
|
|
- color: #fff;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- width: 88%;
|
|
|
- height: 30px;
|
|
|
- background: #00aaed;
|
|
|
- border-radius: 5px;
|
|
|
- cursor: pointer;
|
|
|
- transition: .3s;
|
|
|
-}
|
|
|
+ /deep/ .ivu-list {
|
|
|
+ height: 245px !important;
|
|
|
+ overflow-y: auto;
|
|
|
+ }
|
|
|
|
|
|
-.clear-btn:hover {
|
|
|
- background: #4dcbff;
|
|
|
-}
|
|
|
+ /deep/ .ivu-list-item-meta-title {
|
|
|
+ margin-bottom: 2px !important;
|
|
|
+ font-size: 15px !important;
|
|
|
+ cursor: pointer;
|
|
|
+ text-decoration: underline;
|
|
|
+ }
|
|
|
|
|
|
-.upcoming-card-last {
|
|
|
- width: calc(100% + 10px);
|
|
|
- margin-top: -5px;
|
|
|
- margin-right: -10px;
|
|
|
- text-align: right;
|
|
|
- height: 11px;
|
|
|
- font-size: 11px;
|
|
|
- transform: scale(0.75);
|
|
|
-}
|
|
|
+ /deep/ .ivu-list-item {
|
|
|
+ padding: 10px 0 0 0 !important;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-card-body {
|
|
|
- padding: 5px;
|
|
|
-}
|
|
|
+ /deep/ .ivu-list-item-meta-content {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-tabs-tab {
|
|
|
- //width:100px!important;
|
|
|
- height: @cell_height !important;
|
|
|
- line-height: @cell_height !important;
|
|
|
- text-align: center !important;
|
|
|
- margin-top: 10px !important;
|
|
|
- font-size: 14px !important;
|
|
|
- padding-top: 0 !important;
|
|
|
- padding-bottom: 0 !important;
|
|
|
-}
|
|
|
+ /deep/ .ivu-list-item-meta {
|
|
|
+ margin-bottom: 6px !important;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .ivu-card-extra {
|
|
|
- top: 8px;
|
|
|
-}
|
|
|
+ /deep/ .ivu-list-item-meta-description {
|
|
|
+ //width: 253px;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 22px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
|
|
|
-/deep/.ivu-card-body{
|
|
|
- padding: 0 !important;
|
|
|
-}
|
|
|
+ /deep/.ivu-checkbox-checked .ivu-checkbox-inner{
|
|
|
+ background-color: #1B365D !important;
|
|
|
+ border-color: #1B365D !important;
|
|
|
+ }
|
|
|
|
|
|
+ .clear-btn{
|
|
|
+ border: #b6b6b6 1px dashed;
|
|
|
+ color:#fff;
|
|
|
+ display:flex;
|
|
|
+ align-items:center;
|
|
|
+ justify-content:center;
|
|
|
+ width: 88%;
|
|
|
+ height: 30px;
|
|
|
+ background: #00aaed;
|
|
|
+ border-radius: 5px;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: .3s;
|
|
|
+ }
|
|
|
+ .clear-btn:hover{
|
|
|
+ background: #4dcbff;
|
|
|
+ }
|
|
|
</style>
|