Commit 17b1deec authored by lanbaoming's avatar lanbaoming

2024-05-16修改

parent c5838e3f
...@@ -124,6 +124,15 @@ export function getCostList(params) { ...@@ -124,6 +124,15 @@ export function getCostList(params) {
params, params,
}); });
} }
// 付款单主表 SELECT * from ecw_payment
// 付款单费用明细 SELECT * from ecw_payable
// 根据明细获取主表ID
export function getPaymentId(id) {
return request({
url: "/ecw/box-cost/getPaymentId?id="+id,
method: "get"
});
}
// 获得出货异常记录列表 // 获得出货异常记录列表
export function getAbnormalList(params) { export function getAbnormalList(params) {
......
...@@ -48,8 +48,6 @@ export function getEChartData(query) { ...@@ -48,8 +48,6 @@ export function getEChartData(query) {
}) })
} }
// 导出测试 Excel 2024-04-27 // 导出测试 Excel 2024-04-27
export function exportTestExcel(query) { export function exportTestExcel(query) {
return request({ return request({
......
...@@ -94,6 +94,7 @@ export default { ...@@ -94,6 +94,7 @@ export default {
}); });
const { costDetail } = this.$attrs; const { costDetail } = this.$attrs;
this.costObj = { ...costDetail }; this.costObj = { ...costDetail };
//币种获取接口 lanbm 2024-05-16 添加注释
getCurrencyList().then((res) => { getCurrencyList().then((res) => {
this.currencyList = res.data ?? []; this.currencyList = res.data ?? [];
}); });
......
<template> <template>
<div class="app-container shipping-detail"> <div class="app-container shipping-detail">
<el-row type="flex" style="margin-top: 15px; margin-bottom: 15px" justify="center"> <el-row
type="flex"
style="margin-top: 15px; margin-bottom: 15px"
justify="center"
>
<el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="22"> <el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="22">
<div style="display: flex; justify-content: space-between;align-items: flex-end;"> <div
<h2>{{$t('出货详情')}}</h2> style="
display: flex;
justify-content: space-between;
align-items: flex-end;
"
>
<h2>{{ $t("出货详情") }}</h2>
<div> <div>
<!-- <el-button size="small" @click="handleCommand('edit')">{{$t('编辑')}}</el-button> --> <!-- <el-button size="small" @click="handleCommand('edit')">{{$t('编辑')}}</el-button> -->
<el-button size="small" v-hasPermi="['shipment:box:action:sea']" @click="handleCommand('router')">{{$t('操作')}}</el-button> <el-button
<el-button type="primary" v-hasPermi="['shipment:box:action:error']" size="small" @click="handleCommand('error')">{{$t('异常登记')}}</el-button> size="small"
<el-button type="primary" v-hasPermi="['shipment:box:action:cost']" size="small" @click="handleCommand('cost')">{{$t('费用登记')}}</el-button> v-hasPermi="['shipment:box:action:sea']"
@click="handleCommand('router')"
>{{ $t("操作") }}</el-button
>
<el-button
type="primary"
v-hasPermi="['shipment:box:action:error']"
size="small"
@click="handleCommand('error')"
>{{ $t("异常登记") }}</el-button
>
<el-button
type="primary"
v-hasPermi="['shipment:box:action:cost']"
size="small"
@click="handleCommand('cost')"
>{{ $t("费用登记") }}</el-button
>
<!-- <el-button type="danger" size="small" @click="handleCommand('delete')">{{$t('删除')}}</el-button> --> <!-- <el-button type="danger" size="small" @click="handleCommand('delete')">{{$t('删除')}}</el-button> -->
</div> </div>
</div> </div>
<el-card style="margin-top: 15px"> <el-card style="margin-top: 15px">
<el-descriptions :column="4" border> <el-descriptions :column="4" border>
<el-descriptions-item :label="$t('自编号')"> <el-descriptions-item :label="$t('自编号')">
{{shipmentObj.selfNo}} {{ shipmentObj.selfNo }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')"> <el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="shipmentObj.transportType" /> <dict-tag
:type="DICT_TYPE.ECW_TRANSPORT_TYPE"
:value="shipmentObj.transportType"
/>
</el-descriptions-item> </el-descriptions-item>
<!-- <el-descriptions-item :label="$t('出货渠道')"> <!-- <el-descriptions-item :label="$t('出货渠道')">
{{getShipChannelName(shipmentObj.shippingChannelId)}} {{getShipChannelName(shipmentObj.shippingChannelId)}}
</el-descriptions-item> --> </el-descriptions-item> -->
<el-descriptions-item :label="$t('柜型')"> <el-descriptions-item :label="$t('柜型')">
{{getCabinetLabel(shipmentObj.cabinetId)}} {{ getCabinetLabel(shipmentObj.cabinetId) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('状态')"> <el-descriptions-item :label="$t('状态')">
{{shipmentObj.shipmentStatusText}} {{ shipmentObj.shipmentStatusText }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('总计')"> <el-descriptions-item :label="$t('总计')">
{{getBoxSum(shipmentObj.boxStatistics)}} {{ getBoxSum(shipmentObj.boxStatistics) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('始发地')"> <el-descriptions-item :label="$t('始发地')">
{{getCityName(shipmentObj.startWarehouseId)}} {{ getCityName(shipmentObj.startWarehouseId) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('目的地')"> <el-descriptions-item :label="$t('目的地')">
{{getCityName(shipmentObj.destWarehouseId)}} {{ getCityName(shipmentObj.destWarehouseId) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="SO NO"> <el-descriptions-item label="SO NO">
{{shipmentObj.bookSeaInfo ? shipmentObj.bookSeaInfo.sono : '' }} {{ shipmentObj.bookSeaInfo ? shipmentObj.bookSeaInfo.sono : "" }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
...@@ -47,103 +77,321 @@ ...@@ -47,103 +77,321 @@
<el-tabs style="margin-top: 15px" type="border-card" value="detail"> <el-tabs style="margin-top: 15px" type="border-card" value="detail">
<el-tab-pane :label="$t('明细')" name="detail"> <el-tab-pane :label="$t('明细')" name="detail">
<div class="detail-pane"> <div class="detail-pane">
<div>{{$t('当前部分')}}</div> <div>{{ $t("当前部分") }}</div>
<el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange"> <el-select
:placeholder="$t('请选择')"
v-model="sectionId"
@change="sectionChange"
>
<el-option key="0" :label="$t('全部')" value="0"></el-option> <el-option key="0" :label="$t('全部')" value="0"></el-option>
<el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option
v-for="item in sectionList"
:key="item.id"
:label="item.title"
:value="item.id"
></el-option>
</el-select> </el-select>
<p class="box-weight"> <p class="box-weight">
{{getSectionInfo}} {{ getSectionInfo }}
</p> </p>
<div style="margin-left:30px;"> <div style="margin-left: 30px">
<el-button type="primary" v-hasPermi="['shipment:box:order:select']" size="small" @click="()=>updateStatus('selected')">{{$t('更新所选订单状态')}}</el-button> <el-button
<el-button type="primary" v-hasPermi="['shipment:box:order:all']" size="small" @click="()=>updateStatus('all')">{{$t('更新全部订单状态')}}</el-button> type="primary"
v-hasPermi="['shipment:box:order:select']"
size="small"
@click="() => updateStatus('selected')"
>{{ $t("更新所选订单状态") }}</el-button
>
<el-button
type="primary"
v-hasPermi="['shipment:box:order:all']"
size="small"
@click="() => updateStatus('all')"
>{{ $t("更新全部订单状态") }}</el-button
>
</div> </div>
<div class="document-status"> <div class="document-status">
<p>{{$t('单证状态')}}</p> <p>{{ $t("单证状态") }}</p>
<template v-for="(item, index) in getDocStatus(sectionObj.sectionOrderList)"> <template
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item" :key="index" /> v-for="(item, index) in getDocStatus(
sectionObj.sectionOrderList
)"
>
<dict-tag
:type="DICT_TYPE.ECW_CUSTOMS_TYPE"
:value="item"
:key="index"
/>
</template> </template>
</div> </div>
</div> </div>
<el-table :data="sectionObj.sectionOrderList" style="width: 100%" border @selection-change="handleSelectionChange"> <el-table
<el-table-column type="selection" width="50" :selectable="selectable"></el-table-column>> :data="sectionObj.sectionOrderList"
<el-table-column align="center" :label="$t('序号')" width="50" prop="tidanNum" /> style="width: 100%"
<el-table-column prop="orderNo" :label="$t('订单号')" align="center"> border
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="50"
:selectable="selectable"
></el-table-column
>>
<el-table-column
align="center"
:label="$t('序号')"
width="50"
prop="tidanNum"
/>
<el-table-column
prop="orderNo"
:label="$t('订单号')"
align="center"
>
<template v-slot="scope"> <template v-slot="scope">
<a href="javascript:void(0)" @click="jumpOrderDetail(scope.row)">{{ scope.row.orderNo }}</a> <a
href="javascript:void(0)"
@click="jumpOrderDetail(scope.row)"
>{{ scope.row.orderNo }}</a
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="goodsList" :label="$t('货物信息')" width="230px" align="center"> <el-table-column
<template v-slot="{row}"> prop="goodsList"
:label="$t('货物信息')"
width="230px"
align="center"
>
<template v-slot="{ row }">
<section> <section>
<div v-for="(item, index) in row.goodsList" :key="index"> <div v-for="(item, index) in row.goodsList" :key="index">
{{index+1}}{{item.prodTitleZh}} {{ index + 1 }}{{ item.prodTitleZh }}
</div> </div>
</section> </section>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="num" :label="$t('计划箱数')" align="center"></el-table-column> <el-table-column
<el-table-column prop="installNum" :label="$t('实装箱数')" align="center"></el-table-column> prop="num"
<el-table-column prop="unloadNum" :label="$t('卸柜箱数')" align="center"></el-table-column> :label="$t('计划箱数')"
<el-table-column prop="destWarehouseName" :label="$t('提货点')" align="center"></el-table-column> align="center"
<el-table-column prop="volume" :label="$t('体积')" align="center"></el-table-column> ></el-table-column>
<el-table-column prop="weight" :label="$t('重量')" align="center"></el-table-column> <el-table-column
<el-table-column prop="totalWorth" :label="$t('货值')" align="center"></el-table-column> prop="installNum"
<el-table-column prop="customsType" :label="$t('报关方式')" align="center"> :label="$t('实装箱数')"
align="center"
></el-table-column>
<el-table-column
prop="unloadNum"
:label="$t('卸柜箱数')"
align="center"
></el-table-column>
<el-table-column
prop="destWarehouseName"
:label="$t('提货点')"
align="center"
></el-table-column>
<el-table-column
prop="volume"
:label="$t('体积')"
align="center"
></el-table-column>
<el-table-column
prop="weight"
:label="$t('重量')"
align="center"
></el-table-column>
<el-table-column
prop="totalWorth"
:label="$t('货值')"
align="center"
></el-table-column>
<el-table-column
prop="customsType"
:label="$t('报关方式')"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div :class="scope.row.customsType !== 1 ? 'customsType-red' : ''"> <div
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="scope.row.customsType" /> :class="
scope.row.customsType !== 1 ? 'customsType-red' : ''
"
>
<dict-tag
:type="DICT_TYPE.ECW_CUSTOMS_TYPE"
:value="scope.row.customsType"
/>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="customsFee" :label="$t('报关费用')" align="center"></el-table-column> <el-table-column
<el-table-column prop="" :label="$t('操作')" align="center" width="120px"> prop="customsFee"
:label="$t('报关费用')"
align="center"
></el-table-column>
<el-table-column
prop=""
:label="$t('操作')"
align="center"
width="120px"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="small" :disabled="scope.row.abnormalDealStatus === 1" @click="()=>updateStatus('single', scope.row)">{{$t('更新状态')}}</el-button> <el-button
type="primary"
size="small"
:disabled="scope.row.abnormalDealStatus === 1"
@click="() => updateStatus('single', scope.row)"
>{{ $t("更新状态") }}</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('状态')" name="status"> <el-tab-pane :label="$t('状态')" name="status">
<div v-for="(item, index) in logList" :key="item.id" :class="`shipping-status ${index === 0 ? 'curr-status' : '' }`"> <div
v-for="(item, index) in logList"
:key="item.id"
:class="`shipping-status ${index === 0 ? 'curr-status' : ''}`"
>
<div class="status-line"></div> <div class="status-line"></div>
<div class="status-number">{{logList.length - index}}</div> <div class="status-number">{{ logList.length - index }}</div>
<div class="status-info"> <div class="status-info">
<div>{{$l(item, 'title')}} <el-button v-if="item.approvalId>0" type="text" @click="handleApproval(item.bpmProcessId)">{{$t('查看审批')}}</el-button></div>
<div> <div>
<p>{{formatDate(item.createTime)}}</p> {{ $l(item, "title") }}
<p>{{item.operator}}</p> <el-button
v-if="item.approvalId > 0"
type="text"
@click="handleApproval(item.bpmProcessId)"
>{{ $t("查看审批") }}</el-button
>
</div>
<div>
<p>{{ formatDate(item.createTime) }}</p>
<p>{{ item.operator }}</p>
</div> </div>
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('费用')" name="fee"> <el-tab-pane :label="$t('费用')" name="fee">
<el-table :data="costList" style="width: 100%" border> <el-table :data="costList" style="width: 100%" border>
<el-table-column type="index" align="center" :label="$t('序号')" width="50" /> <el-table-column
<el-table-column prop="costType" :label="$t('费用类型')" align="center"> type="index"
align="center"
:label="$t('序号')"
width="50"
/>
<el-table-column
prop="costType"
:label="$t('费用类型')"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="scope.row.costType" /> <dict-tag
:type="DICT_TYPE.FEE_TYPE"
:value="scope.row.costType"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="supplierId" :label="$t('供应商')" align="center"> <el-table-column
prop="supplierId"
:label="$t('供应商')"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{getSupplier(scope.row.supplierId)}} {{ getSupplier(scope.row.supplierId) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="price" :label="$t('金额')" align="center"></el-table-column> <el-table-column
<el-table-column prop="payPrice" :label="$t('实付金额')" align="center"></el-table-column> prop="price"
<el-table-column prop="payTime" :label="$t('创建日期')" align="center"> :label="$t('金额')"
align="center"
></el-table-column>
<el-table-column
prop="priceUnitName"
:label="$t('币种')"
align="center"
></el-table-column>
<el-table-column
prop="payPrice"
:label="$t('实付金额')"
align="center"
></el-table-column>
<el-table-column
prop="payPriceBz"
:label="$t('实付币种')"
align="center"
></el-table-column>
<el-table-column
prop="payTime"
:label="$t('实付日期')"
align="center"
>
<!--实付日期 改为 创建日期 lanbm 2024-05-06 add--> <!--实付日期 改为 创建日期 lanbm 2024-05-06 add-->
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.payTime">{{formatDate(scope.row.payTime)}}</span> <span v-if="scope.row.payTime">{{
formatDate(scope.row.payTime)
}}</span>
</template>
</el-table-column>
<el-table-column
prop="payableNo"
:label="$t('付款单号')"
align="center"
>
<template slot-scope="scope">
<span
style="color: #1890ff"
@click="paymentDetail(scope.row)"
>{{ scope.row.payableNo }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
prop="creator"
:label="$t('创建人')"
align="center"
></el-table-column>
<el-table-column
prop="createTime"
:label="$t('创建日期')"
align="center"
></el-table-column>
<el-table-column
prop="updater"
:label="$t('修改人')"
align="center"
></el-table-column>
<el-table-column
prop="updateTime"
:label="$t('修改日期')"
align="center"
></el-table-column>
<!--添加备注信息列 lanbm 2024-05-16 add-->
<el-table-column
prop="remarks"
:label="$t('备注')"
align="center"
></el-table-column>
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;" v-hasPermi="['ecw:box-cost:update']">{{$t('编辑')}}</el-button> <el-button
<el-popconfirm :title="$t('确定是否删除')" @confirm="deleteCostClick(scope.row)"> type="primary"
<el-button type="danger" size="small" slot="reference" v-hasPermi="['ecw:box-cost:delete']">{{$t('删除')}}</el-button> size="small"
@click="editCostClick(scope.row)"
style="marginright: 10px"
v-hasPermi="['ecw:box-cost:update']"
>{{ $t("编辑") }}</el-button
>
<el-popconfirm
:title="$t('确定是否删除')"
@confirm="deleteCostClick(scope.row)"
>
<el-button
type="danger"
size="small"
slot="reference"
v-hasPermi="['ecw:box-cost:delete']"
>{{ $t("删除") }}</el-button
>
</el-popconfirm> </el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
...@@ -151,34 +399,76 @@ ...@@ -151,34 +399,76 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('异常')" name="error"> <el-tab-pane :label="$t('异常')" name="error">
<el-table :data="errorList" style="width: 100%" border> <el-table :data="errorList" style="width: 100%" border>
<el-table-column type="index" align="center" :label="$t('序号')" width="50" /> <el-table-column
type="index"
align="center"
:label="$t('序号')"
width="50"
/>
<el-table-column prop="opStep" :label="$t('操作')" align="center"> <el-table-column prop="opStep" :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PROCESS" :value="scope.row.opStep" /> <dict-tag
:type="DICT_TYPE.BOX_SHIPPING_PROCESS"
:value="scope.row.opStep"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="billAbnId" :label="$t('异常')" align="center"> <el-table-column
prop="billAbnId"
:label="$t('异常')"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION" :value="scope.row.billAbnId" /> <dict-tag
:type="DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION"
:value="scope.row.billAbnId"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="abnDetail" :label="$t('异常描述')" align="center" width="300"></el-table-column> <el-table-column
<el-table-column prop="delayDays" :label="$t('异常延迟天数')" align="center"></el-table-column> prop="abnDetail"
<el-table-column prop="" :label="$t('异常时间')" align="center" width="200"> :label="$t('异常描述')"
align="center"
width="300"
></el-table-column>
<el-table-column
prop="delayDays"
:label="$t('异常延迟天数')"
align="center"
></el-table-column>
<el-table-column
prop=""
:label="$t('异常时间')"
align="center"
width="200"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.abnStartTime">{{formatDate(scope.row.abnStartTime)}} - </span> <span v-if="scope.row.abnStartTime"
<span v-if="scope.row.abnEndTime">{{formatDate(scope.row.abnEndTime)}}</span> >{{ formatDate(scope.row.abnStartTime) }} -
</span>
<span v-if="scope.row.abnEndTime">{{
formatDate(scope.row.abnEndTime)
}}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('表单')" name="download"> <el-tab-pane :label="$t('表单')" name="download">
<el-table :data="downloadList" style="width: 50%"> <el-table :data="downloadList" style="width: 50%">
<el-table-column prop="title" :label="$t('文件类型')"></el-table-column> <el-table-column
prop="title"
:label="$t('文件类型')"
></el-table-column>
<el-table-column prop="" :label="$t('下载链接')"> <el-table-column prop="" :label="$t('下载链接')">
<template slot-scope="scope"> <template slot-scope="scope">
<a v-if="scope.row.serviceName" href="javascript:void(0)" @click="downloadDetailFile(scope.row)" v-hasPermi="[`${scope.row.hasPermi}`]">{{$t('下载')}}</a> <a
<div v-else>{{$t('未完成')}}</div> v-if="scope.row.serviceName"
href="javascript:void(0)"
@click="downloadDetailFile(scope.row)"
v-hasPermi="[`${scope.row.hasPermi}`]"
>{{ $t("下载") }}</a
>
<div v-else>{{ $t("未完成") }}</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -188,18 +478,48 @@ ...@@ -188,18 +478,48 @@
</el-row> </el-row>
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogConfig.title" :visible.sync="dialogConfig.visible" :width="dialogConfig.width" append-to-body class="shippingSea-dialog"> <el-dialog
:title="dialogConfig.title"
:visible.sync="dialogConfig.visible"
:width="dialogConfig.width"
append-to-body
class="shippingSea-dialog"
>
<template v-if="dialogConfig.type === 'edit'"> <template v-if="dialogConfig.type === 'edit'">
<editForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :warehouseList="warehouseList" :transportTypes="transportTypes" :cabinetList="cabinetList" /> <editForm
v-if="dialogConfig.visible"
@closeDialog="closeDialog"
:shipmentObj="shipmentObj"
:warehouseList="warehouseList"
:transportTypes="transportTypes"
:cabinetList="cabinetList"
/>
</template> </template>
<template v-if="dialogConfig.type === 'cost'"> <template v-if="dialogConfig.type === 'cost'">
<costForm v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :costDetail="costDetail" flag="sea" /> <costForm
v-if="dialogConfig.visible"
@closeDialog="closeDialog"
:shipmentObj="shipmentObj"
:costDetail="costDetail"
flag="sea"
/>
</template> </template>
<template v-if="dialogConfig.type === 'error'"> <template v-if="dialogConfig.type === 'error'">
<regError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :allUsers="allUsers" flag="sea" /> <regError
v-if="dialogConfig.visible"
@closeDialog="closeDialog"
:shipmentObj="shipmentObj"
:allUsers="allUsers"
flag="sea"
/>
</template> </template>
<template v-if="dialogConfig.type === 'updateError'"> <template v-if="dialogConfig.type === 'updateError'">
<updateError v-if="dialogConfig.visible" @closeDialog="closeDialog" :shipmentObj="shipmentObj" :errorInfo="errorInfo" /> <updateError
v-if="dialogConfig.visible"
@closeDialog="closeDialog"
:shipmentObj="shipmentObj"
:errorInfo="errorInfo"
/>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
...@@ -213,6 +533,7 @@ import { ...@@ -213,6 +533,7 @@ import {
getAbnormalList, getAbnormalList,
deleteCost, deleteCost,
deletebox, deletebox,
getPaymentId,
} from "@/api/ecw/box"; } from "@/api/ecw/box";
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
...@@ -231,6 +552,8 @@ import regError from "./regError.vue"; ...@@ -231,6 +552,8 @@ import regError from "./regError.vue";
import editForm from "./editForm.vue"; import editForm from "./editForm.vue";
import updateError from "./updateError.vue"; import updateError from "./updateError.vue";
import { listUser } from "@/api/system/user"; import { listUser } from "@/api/system/user";
//lanbm 2024-05-16 add
import { getCurrencyList } from "@/api/ecw/currency";
export default { export default {
name: "EcwBoxQuery", name: "EcwBoxQuery",
...@@ -254,6 +577,11 @@ export default { ...@@ -254,6 +577,11 @@ export default {
const { data } = res; const { data } = res;
this.allUsers = data.list ?? []; this.allUsers = data.list ?? [];
}); });
//lanbm 2024-05-16 add
/* 不用此方式
getCurrencyList().then((res) => {
this.currencyList = res.data ?? [];
});*/
}, },
data() { data() {
return { return {
...@@ -299,27 +627,44 @@ export default { ...@@ -299,27 +627,44 @@ export default {
costDetail: {}, costDetail: {},
// 下载 // 下载
downloadList: [ downloadList: [
{ title: this.$t("预装单"), serviceName: "downloadPreloadGoodsList", hasPermi: "shipment:box:download:downloadPreloadGoodsList" }, {
{ title: this.$t("已装单"), serviceName: "downloadLoadGoodsList", hasPermi: "shipment:box:download:downloadLoadGoodsList" }, title: this.$t("预装单"),
{ title: this.$t("应收汇总表"), serviceName: "downloadReceivableList", hasPermi: "shipment:box:download:downloadReceivableList" }, serviceName: "downloadPreloadGoodsList",
hasPermi: "shipment:box:download:downloadPreloadGoodsList",
},
{
title: this.$t("已装单"),
serviceName: "downloadLoadGoodsList",
hasPermi: "shipment:box:download:downloadLoadGoodsList",
},
{
title: this.$t("应收汇总表"),
serviceName: "downloadReceivableList",
hasPermi: "shipment:box:download:downloadReceivableList",
},
{ {
title: this.$t("提货单"), title: this.$t("提货单"),
serviceName: "zipDownload", serviceName: "zipDownload",
fileFormat: "zip", fileFormat: "zip",
hasPermi: "shipment:box:download:zipDownload" hasPermi: "shipment:box:download:zipDownload",
}, },
{ {
title: "agent list", title: "agent list",
serviceName: "downloadAgentListFiles", serviceName: "downloadAgentListFiles",
type: "url", type: "url",
hasPermi: "shipment:box:download:downloadAgentListFiles" hasPermi: "shipment:box:download:downloadAgentListFiles",
},
{
title: "soncap",
serviceName: "downloadSoncapFiles",
type: "url",
hasPermi: "shipment:box:download:downloadSoncapFiles",
}, },
{ title: "soncap", serviceName: "downloadSoncapFiles", type: "url", hasPermi: "shipment:box:download:downloadSoncapFiles" },
{ {
title: this.$t("提单Copy"), title: this.$t("提单Copy"),
serviceName: "downloadLadingCopy", serviceName: "downloadLadingCopy",
type: "url", type: "url",
hasPermi: "shipment:box:download:downloadLadingCopy" hasPermi: "shipment:box:download:downloadLadingCopy",
}, },
], ],
// 选中行 // 选中行
...@@ -330,9 +675,19 @@ export default { ...@@ -330,9 +675,19 @@ export default {
errorType: "", errorType: "",
operate: "", operate: "",
}, },
//币种信息 lanbm 2024-05-16 add
currencyList: [],
}; };
}, },
methods: { methods: {
paymentDetail(row) {
//lanbm 2024-05-16跳转到付款单详情页面
const id = row.payableId;
getPaymentId(id).then((r) => {
let sId = r.data;
this.$router.push("/financial/paymentDetail?id=" + sId);
});
},
selectable(row, index) { selectable(row, index) {
if (row.abnormalDealStatus === 1) return false; if (row.abnormalDealStatus === 1) return false;
return true; return true;
...@@ -442,6 +797,7 @@ export default { ...@@ -442,6 +797,7 @@ export default {
}, },
// 获取费用 // 获取费用
getCost() { getCost() {
//lanbm 2024-05-16 添加注释
getCostList({ shipmentId: this.shipmentId }).then((res) => { getCostList({ shipmentId: this.shipmentId }).then((res) => {
this.costList = res.data; this.costList = res.data;
}); });
...@@ -574,11 +930,14 @@ export default { ...@@ -574,11 +930,14 @@ export default {
fileFormat ?? "xlsx" fileFormat ?? "xlsx"
); );
} }
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载')) this.$message.success(this.$t("已加入导出队列,请稍后在下载日志中下载"));
}, },
handleApproval(id) { handleApproval(id) {
this.$router.push({path: '/bpm/process-instance/detail', query: {id: id}}) this.$router.push({
} path: "/bpm/process-instance/detail",
query: { id: id },
});
},
}, },
computed: { computed: {
visitedViews() { visitedViews() {
...@@ -643,10 +1002,12 @@ export default { ...@@ -643,10 +1002,12 @@ export default {
} }
}, },
// 异常登记和费用登记用到的标识 // 异常登记和费用登记用到的标识
flag(){ flag() {
// 地址中有seaAir则表示海空联运,否则就是海运 // 地址中有seaAir则表示海空联运,否则就是海运
return this.$route.fullPath.toLowerCase().indexOf('seaair') > -1 ? 'seaAir' : 'air' return this.$route.fullPath.toLowerCase().indexOf("seaair") > -1
} ? "seaAir"
: "air";
},
}, },
}; };
</script> </script>
......
...@@ -140,12 +140,30 @@ ...@@ -140,12 +140,30 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="price" :label="$t('金额')" align="center"></el-table-column> <el-table-column prop="price" :label="$t('金额')" align="center"></el-table-column>
<!--lanbm 2024-05-16 修改-->
<el-table-column prop="priceUnitName" :label="$t('币种')" align="center"></el-table-column>
<el-table-column prop="payPrice" :label="$t('实付金额')" align="center"></el-table-column> <el-table-column prop="payPrice" :label="$t('实付金额')" align="center"></el-table-column>
<el-table-column prop="payPriceBz" :label="$t('实付币种')" align="center"></el-table-column>
<el-table-column prop="payTime" :label="$t('实付日期')" align="center"> <el-table-column prop="payTime" :label="$t('实付日期')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.payTime">{{formatDate(scope.row.payTime)}}</span> <span v-if="scope.row.payTime">{{formatDate(scope.row.payTime)}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="payableNo" :label="$t('付款单号')" align="center">
<template slot-scope="scope">
<span
style="color: #1890ff"
@click="paymentDetail(scope.row)"
>{{ scope.row.payableNo }}</span
>
</template>
</el-table-column>
<el-table-column prop="creator" :label="$t('创建人')" align="center"></el-table-column>
<el-table-column prop="createTime" :label="$t('创建日期')" align="center"></el-table-column>
<el-table-column prop="updater" :label="$t('修改人')" align="center"></el-table-column>
<el-table-column prop="updateTime" :label="$t('修改日期')" align="center"></el-table-column>
<!--添加备注信息列 lanbm 2024-05-16 add-->
<el-table-column prop="remarks" :label="$t('备注')" align="center"></el-table-column>
<el-table-column :label="$t('操作')" align="center"> <el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;" v-hasPermi="['ecw:box-cost:update']">{{$t('编辑')}}</el-button> <el-button type="primary" size="small" @click="editCostClick(scope.row)" style="marginRight:10px;" v-hasPermi="['ecw:box-cost:update']">{{$t('编辑')}}</el-button>
...@@ -228,7 +246,7 @@ import { ...@@ -228,7 +246,7 @@ import {
getCostList, getCostList,
getAbnormalList, getAbnormalList,
deleteCost, deleteCost,
deletebox, deletebox,getPaymentId
} from "@/api/ecw/box"; } from "@/api/ecw/box";
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
...@@ -368,6 +386,14 @@ export default { ...@@ -368,6 +386,14 @@ export default {
}; };
}, },
methods: { methods: {
paymentDetail(row) {
//lanbm 2024-05-16跳转到付款单详情页面
const id = row.payableId;
getPaymentId(id).then((r) => {
let sId = r.data;
this.$router.push("/financial/paymentDetail?id=" + sId);
});
},
getregprocess(val) { getregprocess(val) {
var data = '' var data = ''
switch(val){ switch(val){
...@@ -535,6 +561,7 @@ export default { ...@@ -535,6 +561,7 @@ export default {
}, },
// 获取费用 // 获取费用
getCost() { getCost() {
//空运费用 lanbm 2024-05-16
getCostList({ shipmentId: this.shipmentId }).then((res) => { getCostList({ shipmentId: this.shipmentId }).then((res) => {
this.costList = res.data; this.costList = res.data;
}); });
......
<template> <template>
<div class="app-container"> <div class="app-container">
<div slot="header" class="card-title">{{ $t('收款单') }}</div> <div slot="header" class="card-title">{{ $t("收款单") }}</div>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-card v-show="showSearch" class="card"> <el-card v-show="showSearch" class="card">
<el-form <el-form
...@@ -74,48 +74,87 @@ ...@@ -74,48 +74,87 @@
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">{{ $t('查找') }}</el-button> <el-button type="primary" @click="handleQuery">{{
$t("查找")
}}</el-button>
<el-button type="primary" @click="handleQuery2">{{
$t("批量反审核")
}}</el-button>
<el-button type="primary" @click="handleQuery3">{{
$t("批量反核销")
}}</el-button>
<el-button type="primary" @click="handleQuery3">{{
$t("批量核销")
}}</el-button>
</el-form-item> </el-form-item>
</el-row> </el-row>
</el-form> </el-form>
</el-card> </el-card>
<el-table v-loading="loadings" :data="list" border class="card"> <el-table v-loading="loadings" :data="list" border class="card">
<el-table-column :label="$t('序号')" align="center" prop="id" type="index"> <el-table-column
:label="$t('序号')"
align="center"
prop="id"
type="index"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span> <span>{{ scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('收款单号')" align="center" prop="receiptNo" /> <el-table-column
<!-- <template slot-scope="scope"> --> :label="$t('收款单号')"
<!-- <span style="color: #1890ff;" @click="verificationCancelClick(scope.row)">{{scope.row.receiptNo}}</span> --> align="center"
<!-- </template> --> prop="receiptNo"
/>
<!-- <template slot-scope="scope"> -->
<!-- <span style="color: #1890ff;" @click="verificationCancelClick(scope.row)">{{scope.row.receiptNo}}</span> -->
<!-- </template> -->
<!-- </el-table-column> --> <!-- </el-table-column> -->
<el-table-column :label="$t('客户名称')" align="center" prop="customerName" /> <el-table-column
:label="$t('客户名称')"
align="center"
prop="customerName"
/>
<el-table-column :label="$t('创建日期')" align="center" prop="createTime"> <el-table-column :label="$t('创建日期')" align="center" prop="createTime">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('实收日期')" align="center" prop="payedAt"> <el-table-column :label="$t('实收日期')" align="center" prop="payedAt">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.payedAt, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.payedAt, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('业务员')" align="center" prop="salesmanName" /> <el-table-column
:label="$t('业务员')"
align="center"
prop="salesmanName"
/>
<el-table-column :label="$t('状态')" align="center"> <el-table-column :label="$t('状态')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
:type="DICT_TYPE.ECW_RECEIPT_STATE" :type="DICT_TYPE.ECW_RECEIPT_STATE"
:value="scope.row.state" :value="scope.row.state"
/> />
<span v-if="scope.row.remark&&(scope.row.state==1 || scope.row.state ==3 || scope.row.state==8)" :title="scope.row.remark"><i class="el-icon-question"></i></span> <span
v-if="
scope.row.remark &&
(scope.row.state == 1 ||
scope.row.state == 3 ||
scope.row.state == 8)
"
:title="scope.row.remark"
><i class="el-icon-question"></i
></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('是否开票')" align="center"> <el-table-column :label="$t('是否开票')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.openInvoice === 0 ? $t('') : $t('') }} {{ scope.row.openInvoice === 0 ? $t("") : $t("") }}
</template> </template>
</el-table-column> </el-table-column>
<!--lanbm 2024-05-14 add-->
<el-table-column :label="$t('明细状态')" align="center" prop="mxStatus" />
<el-table-column <el-table-column
:label="$t('操作')" :label="$t('操作')"
align="center" align="center"
...@@ -127,14 +166,15 @@ ...@@ -127,14 +166,15 @@
type="text" type="text"
v-hasPermi="['ecw:voucher:see']" v-hasPermi="['ecw:voucher:see']"
@click="verificationCancelClick(scope.row)" @click="verificationCancelClick(scope.row)"
>{{ $t('查看')}}</el-button> >{{ $t("查看") }}</el-button
>
<el-button <el-button
v-if="scope.row.state === 0" v-if="scope.row.state === 0"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:edit']" v-hasPermi="['ecw:voucher:edit']"
@click="handleAdd(scope.row.id)" @click="handleAdd(scope.row.id)"
>{{ $t('编辑') }}</el-button >{{ $t("编辑") }}</el-button
> >
<!-- <el-button <!-- <el-button
v-if="scope.row.state == " v-if="scope.row.state == "
...@@ -144,60 +184,71 @@ ...@@ -144,60 +184,71 @@
>{{ $t('核销') }}</el-button >{{ $t('核销') }}</el-button
> --> > -->
<el-button <el-button
v-if="scope.row.state == 4 || scope.row.state == 5 || scope.row.state == 6" v-if="
scope.row.state == 4 ||
scope.row.state == 5 ||
scope.row.state == 6
"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:cancelWriteOff']" v-hasPermi="['ecw:voucher:cancelWriteOff']"
@click="writeOffShow(2,scope.$index)" @click="writeOffShow(2, scope.$index)"
>{{ $t('反核销') }}</el-button >{{ $t("反核销") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 1" v-if="scope.row.state == 1"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:deApproval']" v-hasPermi="['ecw:voucher:deApproval']"
@click="writeOffShow(1,scope.$index)" @click="writeOffShow(1, scope.$index)"
>{{ $t('反审核') }}</el-button >{{ $t("反审核") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 7" v-if="scope.row.state == 7"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:vocher:cancelAppoval']" v-hasPermi="['ecw:vocher:cancelAppoval']"
@click="cancelClick(scope.$index,1)" @click="cancelClick(scope.$index, 1)"
>{{ $t('取消审核') }}</el-button >{{ $t("取消审核") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 11" v-if="scope.row.state == 11"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:vocher:cancelWriteOfflNo']" v-hasPermi="['ecw:vocher:cancelWriteOfflNo']"
@click="cancelClick(scope.$index,3)" @click="cancelClick(scope.$index, 3)"
>{{ $t('取消反核销审核') }}</el-button >{{ $t("取消反核销审核") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 10" v-if="scope.row.state == 10"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:vocher:cancelWriteOffAll']" v-hasPermi="['ecw:vocher:cancelWriteOffAll']"
@click="cancelClick(scope.$index,4)" @click="cancelClick(scope.$index, 4)"
>{{ $t('取消全部核销审核') }}</el-button >{{ $t("取消全部核销审核") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 9" v-if="scope.row.state == 9"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:vocher:cancelAppovalNo']" v-hasPermi="['ecw:vocher:cancelAppovalNo']"
@click="cancelClick(scope.$index,2)" @click="cancelClick(scope.$index, 2)"
>{{ $t('取消反审核') }}</el-button >{{ $t("取消反审核") }}</el-button
> >
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
v-if="scope.row.state == 9 || scope.row.state == 7 || scope.row.state == 11|| scope.row.state == 10" v-if="
scope.row.state == 9 ||
scope.row.state == 7 ||
scope.row.state == 11 ||
scope.row.state == 10
"
v-hasPermi="['ecw:voucher:cancelWriteOff']" v-hasPermi="['ecw:voucher:cancelWriteOff']"
@click="$router.push(`/bpm/process-instance/detail?id=`+scope.row.bmpId)" @click="
>{{ $t('审核详情') }}</el-button $router.push(`/bpm/process-instance/detail?id=` + scope.row.bmpId)
"
>{{ $t("审核详情") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state == 5" v-if="scope.row.state == 5"
...@@ -205,25 +256,55 @@ ...@@ -205,25 +256,55 @@
type="text" type="text"
v-hasPermi="['ecw:voucher:ballot']" v-hasPermi="['ecw:voucher:ballot']"
@click="openInvoice(scope.row.id)" @click="openInvoice(scope.row.id)"
>{{ $t('开票') }}</el-button >{{ $t("开票") }}</el-button
>
<el-button
v-if="
scope.row.state == 1 ||
scope.row.state == 2 ||
scope.row.state == 3
"
v-hasPermi="['ecw:voucher:payment']"
size="mini"
type="text"
@click="verificationCancelClick(scope.row)"
>{{ $t("收款") }}</el-button
>
<el-button
v-if="scope.row.state == 0"
size="mini"
type="text"
v-hasPermi="['ecw:voucher:delete']"
@click="deleteClick(scope.row)"
>{{ $t("删除") }}</el-button
> >
<el-button v-if="scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" v-hasPermi="['ecw:voucher:payment']" size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ $t('收款') }}</el-button>
<el-button v-if="scope.row.state == 0" size="mini" type="text" v-hasPermi="['ecw:voucher:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button>
<el-button <el-button
v-if="scope.row.state != 0 && scope.row.state != 7 && scope.row.state != 11 && scope.row.state != 8 && scope.row.state != 9" v-if="
scope.row.state != 0 &&
scope.row.state != 7 &&
scope.row.state != 11 &&
scope.row.state != 8 &&
scope.row.state != 9
"
size="mini" size="mini"
type="text" type="text"
@click="toprint(scope.row.id)" @click="toprint(scope.row.id)"
v-hasPermi="['ecw:voucher:print']" v-hasPermi="['ecw:voucher:print']"
>{{ $t('打印') }}</el-button >{{ $t("打印") }}</el-button
> >
<el-button <el-button
v-if="scope.row.state != 0 && scope.row.state != 7 && scope.row.state != 11 && scope.row.state != 8 && scope.row.state != 9" v-if="
scope.row.state != 0 &&
scope.row.state != 7 &&
scope.row.state != 11 &&
scope.row.state != 8 &&
scope.row.state != 9
"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:derive']" v-hasPermi="['ecw:voucher:derive']"
@click="exportReceipt(scope.row.id)" @click="exportReceipt(scope.row.id)"
>{{ $t('导出账单') }}</el-button >{{ $t("导出账单") }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
...@@ -249,7 +330,12 @@ ...@@ -249,7 +330,12 @@
<i class="el-icon-close" @click="cancel"></i> <i class="el-icon-close" @click="cancel"></i>
</div> --> </div> -->
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" style="width: 130px" @click="submitForm(1)" v-loading="downloading">{{ $t('国内账单') }}</el-button <el-button
type="primary"
style="width: 130px"
@click="submitForm(1)"
v-loading="downloading"
>{{ $t("国内账单") }}</el-button
> >
<el-button <el-button
plain plain
...@@ -262,30 +348,47 @@ ...@@ -262,30 +348,47 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:title="writeOffType==1?$t('收款单反审核'):$t('收款单反核销')" :title="writeOffType == 1 ? $t('收款单反审核') : $t('收款单反核销')"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="30%"> width="30%"
<div class="cancel_content"> >
<span>{{$t('申请理由')}}</span> <div class="cancel_content">
<el-input type="textarea" :rows ="6" v-model="reason" :placeholder="$t('请输入理由')"></el-input> <span>{{ $t("申请理由") }}</span>
</div> <el-input
type="textarea"
:rows="6"
v-model="reason"
:placeholder="$t('请输入理由')"
></el-input>
</div>
<span slot="footer" class="dialog-footers"> <span slot="footer" class="dialog-footers">
<el-button v-if="writeOffType==1" type="primary" @click="writeOffClick()">{{$t('提交反审核')}}</el-button> <el-button
<el-button v-else type="primary" @click="writeOffClick()">{{$t('提交反核销')}}</el-button> v-if="writeOffType == 1"
<el-button @click="dialogVisible = false">{{$t('取消')}}</el-button> type="primary"
@click="writeOffClick()"
>{{ $t("提交反审核") }}</el-button
>
<el-button v-else type="primary" @click="writeOffClick()">{{
$t("提交反核销")
}}</el-button>
<el-button @click="dialogVisible = false">{{ $t("取消") }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog <el-dialog :title="cancelTitle" :visible.sync="cancelShow" width="30%">
:title="cancelTitle" <div class="cancel_content">
:visible.sync="cancelShow" <span>{{ $t("申请理由") }}</span>
width="30%"> <el-input
<div class="cancel_content"> type="textarea"
<span>{{$t('申请理由')}}</span> :rows="6"
<el-input type="textarea" :rows ="6" v-model="cancelReason" :placeholder="$t('请输入取消理由')"></el-input> v-model="cancelReason"
</div> :placeholder="$t('请输入取消理由')"
></el-input>
</div>
<span slot="footer" class="dialog-footers"> <span slot="footer" class="dialog-footers">
<el-button type="primary" @click="cancelWriteOffClick()">{{$t('提交')}}</el-button> <el-button type="primary" @click="cancelWriteOffClick()">{{
<el-button @click="cancelShow = false">{{$t('取消')}}</el-button> $t("提交")
}}</el-button>
<el-button @click="cancelShow = false">{{ $t("取消") }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
...@@ -306,7 +409,7 @@ import { ...@@ -306,7 +409,7 @@ import {
cancelFinanceReceiptApproval, cancelFinanceReceiptApproval,
cancelFinanceReceiptApprovalNo, cancelFinanceReceiptApprovalNo,
cancelFinanceReceiptWriteOffNo, cancelFinanceReceiptWriteOffNo,
cancelFinanceReceiptWriteOff cancelFinanceReceiptWriteOff,
} from "@/api/ecw/financial"; } from "@/api/ecw/financial";
export default { export default {
...@@ -326,9 +429,7 @@ export default { ...@@ -326,9 +429,7 @@ export default {
total: 0, total: 0,
dateType: [], dateType: [],
loading: "", loading: "",
params: { params: {},
},
// 查询参数 // 查询参数
queryParams: { queryParams: {
page: 1, page: 1,
...@@ -348,20 +449,20 @@ export default { ...@@ -348,20 +449,20 @@ export default {
productRecord: null, productRecord: null,
followUpSalesmanId: null, followUpSalesmanId: null,
}, },
dateFilter:[], dateFilter: [],
downloading: false, // 导出状态 downloading: false, // 导出状态
dialogVisible:false, dialogVisible: false,
reason:'', reason: "",
writeOffType:1, writeOffType: 1,
writeOffIndex:0, writeOffIndex: 0,
cancelShow:false, cancelShow: false,
cancelTitle:'', cancelTitle: "",
cancelReason:'', cancelReason: "",
cancelIndex:0, cancelIndex: 0,
selectIndex:0 selectIndex: 0,
}; };
}, },
activated(){ activated() {
this.getList(); this.getList();
}, },
created() { created() {
...@@ -373,13 +474,13 @@ export default { ...@@ -373,13 +474,13 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
this.params = {} this.params = {};
for(var key in this.queryParams){ for (var key in this.queryParams) {
if(this.queryParams[key]){ if (this.queryParams[key]) {
this.params[key] = this.queryParams[key] this.params[key] = this.queryParams[key];
} }
} }
console.log(this.params) console.log(this.params);
// 处理查询参数 // 处理查询参数
let params = { ...this.params }; let params = { ...this.params };
this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime"); this.addBeginAndEndTime(params, this.dateRangeCreateTime, "createTime");
...@@ -390,22 +491,22 @@ export default { ...@@ -390,22 +491,22 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
changeCustomerId(e){ changeCustomerId(e) {
this.$set(this.queryParams,'customerId',e.id) this.$set(this.queryParams, "customerId", e.id);
}, },
verificationClick(row) { verificationClick(row) {
const id = row.id; const id = row.id;
return this.$router.push("receiptDetail?id=" + id); return this.$router.push("receiptDetail?id=" + id);
// this.$modal // this.$modal
// .confirm("您确认要核销吗?") // .confirm("您确认要核销吗?")
// .then(function () { // .then(function () {
// return receiptVerification(id); // return receiptVerification(id);
// }) // })
// .then(() => { // .then(() => {
// this.getList(); // this.getList();
// this.$modal.msgSuccess("核销成功"); // this.$modal.msgSuccess("核销成功");
// }) // })
// .catch(() => {}); // .catch(() => {});
}, },
verificationCancelClick(row) { verificationCancelClick(row) {
const id = row.id; const id = row.id;
...@@ -422,114 +523,141 @@ export default { ...@@ -422,114 +523,141 @@ export default {
// .catch(() => {}); // .catch(() => {});
}, },
//显示取消审核弹窗 //显示取消审核弹窗
cancelClick(index,type){ cancelClick(index, type) {
this.selectIndex = index this.selectIndex = index;
this.cancelIndex = type this.cancelIndex = type;
this.cancelReason = '' this.cancelReason = "";
if(this.cancelIndex==1){ if (this.cancelIndex == 1) {
this.cancelTitle = this.$t('取消审核') this.cancelTitle = this.$t("取消审核");
}else if(this.cancelIndex == 2){ } else if (this.cancelIndex == 2) {
this.cancelTitle = this.$t('取消反审核') this.cancelTitle = this.$t("取消反审核");
}else if(this.cancelIndex == 3){ } else if (this.cancelIndex == 3) {
this.cancelTitle = this.$t('取消反核销审核') this.cancelTitle = this.$t("取消反核销审核");
}else{ } else {
this.cancelTitle = this.$t('取消全部核销审核') this.cancelTitle = this.$t("取消全部核销审核");
} }
this.cancelShow = true this.cancelShow = true;
}, },
//取消审核 //取消审核
cancelWriteOffClick(){ cancelWriteOffClick() {
if(!this.cancelReason){ if (!this.cancelReason) {
this.$modal.msgError(this.$t('请输入申请理由')); this.$modal.msgError(this.$t("请输入申请理由"));
return return;
} }
var receiptId = this.list[this.selectIndex].id var receiptId = this.list[this.selectIndex].id;
if(this.cancelIndex==1){ if (this.cancelIndex == 1) {
cancelFinanceReceiptApproval({receiptId:receiptId,remark:this.cancelReason}).then(res=>{ cancelFinanceReceiptApproval({
this.cancelShow = false receiptId: receiptId,
this.getList(); remark: this.cancelReason,
this.$message.success(this.$t("提交成功")); }).then((res) => {
this.cancelShow = false;
}); this.getList();
}else if(this.cancelIndex ==2){ this.$message.success(this.$t("提交成功"));
cancelFinanceReceiptApprovalNo({receiptId:receiptId,remark:this.cancelReason}).then(res=>{ });
this.cancelShow = false } else if (this.cancelIndex == 2) {
this.getList(); cancelFinanceReceiptApprovalNo({
this.$message.success(this.$t("提交成功")); receiptId: receiptId,
remark: this.cancelReason,
}); }).then((res) => {
}else if(this.cancelIndex ==3){ this.cancelShow = false;
cancelFinanceReceiptWriteOffNo({receiptId:receiptId,remark:this.cancelReason}).then(res=>{ this.getList();
this.cancelShow = false this.$message.success(this.$t("提交成功"));
this.getList(); });
this.$message.success(this.$t("提交成功")); } else if (this.cancelIndex == 3) {
cancelFinanceReceiptWriteOffNo({
}); receiptId: receiptId,
}else{ remark: this.cancelReason,
cancelFinanceReceiptWriteOff({receiptId:receiptId,remark:this.cancelReason}).then(res=>{ }).then((res) => {
this.cancelShow = false this.cancelShow = false;
this.getList(); this.getList();
this.$message.success(this.$t("提交成功")); this.$message.success(this.$t("提交成功"));
});
}); } else {
cancelFinanceReceiptWriteOff({
receiptId: receiptId,
remark: this.cancelReason,
}).then((res) => {
this.cancelShow = false;
this.getList();
this.$message.success(this.$t("提交成功"));
});
} }
}, },
writeOffClick(){ writeOffClick() {
if(!this.reason){ if (!this.reason) {
this.$modal.msgError(this.$t('请输入申请理由')); this.$modal.msgError(this.$t("请输入申请理由"));
return return;
} }
const receiptIdData = this.list[this.writeOffIndex] const receiptIdData = this.list[this.writeOffIndex];
if(this.writeOffType==1){ if (this.writeOffType == 1) {
// this.$alert() // this.$alert()
// .confirm(this.$t('您确认要反审核吗')+'?') // .confirm(this.$t('您确认要反审核吗')+'?')
// .then(()=>{ // .then(()=>{
financeApproveNo({receiptId:receiptIdData.id,receiptNo:receiptIdData.receiptNo,remark:this.reason}).then(res=>{ financeApproveNo({
this.getList(); receiptId: receiptIdData.id,
this.$message.success(this.$t("提交成功")); receiptNo: receiptIdData.receiptNo,
this.dialogVisible = false remark: this.reason,
// this.$store.dispatch('tagsView/delCurrentView') }).then((res) => {
}); this.getList();
// }) this.$message.success(this.$t("提交成功"));
// .catch(() => {this.dialogVisible = false}); this.dialogVisible = false;
}else{ // this.$store.dispatch('tagsView/delCurrentView')
});
// })
// .catch(() => {this.dialogVisible = false});
} else {
// this.$modal // this.$modal
// .confirm(this.$t('您确认要反核销吗')+'?') // .confirm(this.$t('您确认要反核销吗')+'?')
// .then(()=>{ // .then(()=>{
financeReceiptWriteOffNo({receiptId:receiptIdData.id,receiptNo:receiptIdData.receiptNo,remark:this.reason}).then(res=>{ financeReceiptWriteOffNo({
this.getList(); receiptId: receiptIdData.id,
this.$message.success(this.$t("提交成功")); receiptNo: receiptIdData.receiptNo,
this.dialogVisible = false remark: this.reason,
// this.$store.dispatch('tagsView/delCurrentView') }).then((res) => {
}); this.getList();
// }) this.$message.success(this.$t("提交成功"));
// .catch(() => {this.dialogVisible = false}); this.dialogVisible = false;
// this.$store.dispatch('tagsView/delCurrentView')
});
// })
// .catch(() => {this.dialogVisible = false});
} }
}, },
deleteClick(row) { deleteClick(row) {
const id = row.id; const id = row.id;
this.$modal.confirm(this.$t('是否确认删除该收款单')+'?').then(function() { this.$modal
return deleteReceipt(id); .confirm(this.$t("是否确认删除该收款单") + "?")
}).then(() => { .then(function () {
this.getList(); return deleteReceipt(id);
this.$modal.msgSuccess(this.$t('删除成功')); })
}).catch(() => {}); .then(() => {
this.getList();
this.$modal.msgSuccess(this.$t("删除成功"));
})
.catch(() => {});
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
if(this.dateFilter&&this.dateFilter.length>0){ if (this.dateFilter && this.dateFilter.length > 0) {
this.queryParams.beginCreateTime = this.dateFilter[0] this.queryParams.beginCreateTime = this.dateFilter[0];
this.queryParams.endCreateTime = this.dateFilter[1] this.queryParams.endCreateTime = this.dateFilter[1];
}else{ } else {
this.queryParams.beginCreateTime = '' this.queryParams.beginCreateTime = "";
this.queryParams.endCreateTime = '' this.queryParams.endCreateTime = "";
} }
this.queryParams.page = 1; this.queryParams.page = 1;
this.getList(); this.getList();
}, },
handleQuery2() {
//批量反审核 lanbm 2024-05-14 add
},
handleQuery3() {
//批量反核销 lanbm 2024-05-14 add
},
handleQuery4() {
//批量核销 lanbm 2024-05-14 add
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd(id) { handleAdd(id) {
return this.$router.push("creatCollection?id=" + id); return this.$router.push("creatCollection?id=" + id);
...@@ -545,19 +673,23 @@ export default { ...@@ -545,19 +673,23 @@ export default {
this.exportId = id; this.exportId = id;
}, },
//显示反审核反核销弹窗 //显示反审核反核销弹窗
writeOffShow(type,index){ writeOffShow(type, index) {
this.writeOffType = type this.writeOffType = type;
this.writeOffIndex = index this.writeOffIndex = index;
this.reason = '' this.reason = "";
this.dialogVisible = true this.dialogVisible = true;
}, },
submitForm(type) { submitForm(type) {
this.downloading = true this.downloading = true;
receiptExportExcel({ id: this.exportId, billType: type }).then((response) => { receiptExportExcel({ id: this.exportId, billType: type })
this.$download.excel(response, `${type === 1 ? this.$t('国内账单') : "Debite_note"}.xls`); .then((response) => {
this.$download.excel(
response,
`${type === 1 ? this.$t("国内账单") : "Debite_note"}.xls`
);
this.open = false; this.open = false;
} })
).finally(() => this.downloading = false) .finally(() => (this.downloading = false));
}, },
/** 取消按钮 */ /** 取消按钮 */
// cancel() { // cancel() {
...@@ -579,7 +711,7 @@ export default { ...@@ -579,7 +711,7 @@ export default {
justify-content: space-between; justify-content: space-between;
height: 160px; height: 160px;
} }
.dialog-footers{ .dialog-footers {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
...@@ -588,13 +720,13 @@ export default { ...@@ -588,13 +720,13 @@ export default {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
} }
.cancel_content{ .cancel_content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.cancel_content span{ .cancel_content span {
font-size: 16px; font-size: 16px;
font-weight:600; font-weight: 600;
margin-bottom:10px margin-bottom: 10px;
} }
</style> </style>
<template> <template>
<div style="padding: 20px"> <div style="padding: 20px">
<header style="display: flex;justify-content: space-between;align-items: center;"> <header
<h1 style="font-weight: 600;font-size: 20px">{{$t('会员详情')}}</h1> style="display: flex; justify-content: space-between; align-items: center"
>
<h1 style="font-weight: 600; font-size: 20px">{{ $t("会员详情") }}</h1>
<div> <div>
<el-button type="primary" v-has-permi="['member:certificate']" @click="guarantee(details)">{{ $t('保函证书') }}</el-button> <el-button
<el-button type="primary" v-has-permi="['member:log']" @click="operationLogFn(details)">{{ $t('操作日志') }}</el-button> type="primary"
<el-button type="primary" v-has-permi="['member:id-card']" @click="identityFn(details , '1')">{{ $t('身份证') }}</el-button> v-has-permi="['member:certificate']"
<el-button type="primary" v-has-permi="['member:business-license']" @click="identityFn(details, '2')">{{ $t('营业执照') }}</el-button> @click="guarantee(details)"
<el-button type="danger" v-has-permi="['member:delete']" @click="deleteFn(details)">{{ $t('删除') }}</el-button> >{{ $t("保函证书") }}</el-button
>
<el-button
type="primary"
v-has-permi="['member:log']"
@click="operationLogFn(details)"
>{{ $t("操作日志") }}</el-button
>
<el-button
type="primary"
v-has-permi="['member:id-card']"
@click="identityFn(details, '1')"
>{{ $t("身份证") }}</el-button
>
<el-button
type="primary"
v-has-permi="['member:business-license']"
@click="identityFn(details, '2')"
>{{ $t("营业执照") }}</el-button
>
<el-button
type="danger"
v-has-permi="['member:delete']"
@click="deleteFn(details)"
>{{ $t("删除") }}</el-button
>
</div> </div>
</header> </header>
<el-descriptions :title="$t('公司信息')" :column="4" border> <!--lanbm 2024-05-15 修改信息显示BUG-->
<el-descriptions-item :label="$t('会员编号')">{{ details.id }}</el-descriptions-item> <el-descriptions :title="$t('基础信息')" :column="4" border>
<el-descriptions-item :label="$t('会员昵称')">{{ details.nickname }}</el-descriptions-item> <el-descriptions-item :label="$t('会员编号')">{{
<el-descriptions-item :label="$t('英文名称')">{{ details.englishName }}</el-descriptions-item> details.id
<el-descriptions-item :label="$t('真实姓名')">{{ details.identityName || '-' }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item :label="$t('联系方式')"><span <el-descriptions-item :label="$t('会员昵称')">{{
style="margin-right: 10px;">+{{ details.areaCode }}</span><span>{{ details.mobile }}</span> details.nickname
}}</el-descriptions-item>
<el-descriptions-item :label="$t('英文名称')">{{
details.englishName
}}</el-descriptions-item>
<el-descriptions-item :label="$t('真实姓名')">{{
details.identityName || "-"
}}</el-descriptions-item>
<el-descriptions-item :label="$t('联系方式')"
><span style="margin-right: 10px">+{{ details.areaCode }}</span
><span>{{ details.mobile }}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('绑定邮箱')">{{ details.email }}</el-descriptions-item> <el-descriptions-item :label="$t('绑定邮箱')">{{
<el-descriptions-item :label="$t('生日')">{{ details.birthday }}</el-descriptions-item> details.email
<el-descriptions-item :label="$t('性别')">{{ }}</el-descriptions-item>
details.gender === 0 ? '' : details.gender === 1 ? '' : '保密' <el-descriptions-item :label="$t('生日')">{{
details.birthday
}}</el-descriptions-item>
<el-descriptions-item :label="$t('性别')"
>{{
details.gender === 0 ? "" : details.gender === 1 ? "" : "保密"
}} }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('地址')">{{ details.address }}</el-descriptions-item> <el-descriptions-item :label="$t('地址')">{{
<el-descriptions-item :label="$t('部门')">{{details.department}}</el-descriptions-item> details.address
<el-descriptions-item :label="$t('职位')">{{details.jobPosition}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">{{details.createTime}}</el-descriptions-item> <el-descriptions-item :label="$t('部门')">{{
<el-descriptions-item :label="$t('上次登录')">{{details.loginDate}}</el-descriptions-item> details.department
}}</el-descriptions-item>
<el-descriptions-item :label="$t('职位')">{{
details.jobPosition
}}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">{{
details.createTime
}}</el-descriptions-item>
<el-descriptions-item :label="$t('上次登录')">{{
details.loginDate
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions style="margin-top: 20px" :title="$t('基础信息')" :column="4" border> <!--lanbm 2024-05-15 修改信息显示BUG-->
<el-descriptions-item :label="$t('公司名称')">{{details.enterpriseName}}</el-descriptions-item> <el-descriptions
<el-descriptions-item :label="$t('公司英文名称')">{{details.enterpriseNameEn}}</el-descriptions-item> style="margin-top: 20px"
<el-descriptions-item :label="$t('档口')">{{details.enterpriseStall}}</el-descriptions-item> :title="$t('公司信息')"
<el-descriptions-item :label="$t('品牌')">{{details.enterpriseBrand}}</el-descriptions-item> :column="4"
<el-descriptions-item :label="$t('公司地址')">{{details.enterpriseAddress}}</el-descriptions-item> border
<el-descriptions-item :label="$t('公司简介')">{{details.enterpriseDesc}}</el-descriptions-item> >
<el-descriptions-item :label="$t('公司名称')">{{
details.enterpriseName
}}</el-descriptions-item>
<el-descriptions-item :label="$t('公司英文名称')">{{
details.enterpriseNameEn
}}</el-descriptions-item>
<el-descriptions-item :label="$t('档口')">{{
details.enterpriseStall
}}</el-descriptions-item>
<el-descriptions-item :label="$t('品牌')">{{
details.enterpriseBrand
}}</el-descriptions-item>
<el-descriptions-item :label="$t('公司地址')">{{
details.enterpriseAddress
}}</el-descriptions-item>
<el-descriptions-item :label="$t('公司简介')">{{
details.enterpriseDesc
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions style="margin-top: 20px" :title="$t('认证信息')" :column="4" border> <el-descriptions
<el-descriptions-item :label="$t('成交')">{{details.customerStatus === 3 ? '成交' : '未成交' }}</el-descriptions-item> style="margin-top: 20px"
:title="$t('认证信息')"
:column="4"
border
>
<el-descriptions-item :label="$t('成交')">{{
details.customerStatus === 3 ? "成交" : "未成交"
}}</el-descriptions-item>
<el-descriptions-item :label="$t('认证')"> <el-descriptions-item :label="$t('认证')">
<span v-if="details.identityAuditStatus === 2 && details.enterpriseAuditStatus === 2" >{{ $t('双认证') }}</span> <span
<span v-else-if="details.identityAuditStatus === 2 && details.enterpriseAuditStatus !== 2 " >{{ $t('身份证') }}</span> v-if="
<span v-else-if="details.identityAuditStatus !== 2 && details.enterpriseAuditStatus === 2 " >{{ $t('企业') }}</span> details.identityAuditStatus === 2 &&
<span v-else-if="details.identityAuditStatus !== 2 && details.enterpriseAuditStatus !== 2 " >{{ $t('') }}</span> details.enterpriseAuditStatus === 2
"
>{{ $t("双认证") }}</span
>
<span
v-else-if="
details.identityAuditStatus === 2 &&
details.enterpriseAuditStatus !== 2
"
>{{ $t("身份证") }}</span
>
<span
v-else-if="
details.identityAuditStatus !== 2 &&
details.enterpriseAuditStatus === 2
"
>{{ $t("企业") }}</span
>
<span
v-else-if="
details.identityAuditStatus !== 2 &&
details.enterpriseAuditStatus !== 2
"
>{{ $t("") }}</span
>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('身份证认证状态')">{{ details.identityAuditStatus !== null ? $l(getDictDatas(this.DICT_TYPE.AUDIT_STATUS).find(i => i.value == details.identityAuditStatus),'label') : ''}}</el-descriptions-item> <el-descriptions-item :label="$t('身份证认证状态')">{{
<el-descriptions-item :label="$t('身份证认证状态')">{{details.enterpriseAuditStatus !== null ? $l(getDictDatas(this.DICT_TYPE.AUDIT_STATUS).find(i => i.value == details.enterpriseAuditStatus),'label' ) : '' }}</el-descriptions-item> details.identityAuditStatus !== null
? $l(
getDictDatas(this.DICT_TYPE.AUDIT_STATUS).find(
(i) => i.value == details.identityAuditStatus
),
"label"
)
: ""
}}</el-descriptions-item>
<el-descriptions-item :label="$t('营业执照认证状态')">{{
details.enterpriseAuditStatus !== null
? $l(
getDictDatas(this.DICT_TYPE.AUDIT_STATUS).find(
(i) => i.value == details.enterpriseAuditStatus
),
"label"
)
: ""
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-dialog <el-dialog
title="保函/证书" title="保函/证书"
:visible.sync="guaranteeShow" :visible.sync="guaranteeShow"
:before-close="()=>{guaranteeUrl = ''; guaranteeShow = false;}" :before-close="
width="50%"> () => {
guaranteeUrl = '';
guaranteeShow = false;
}
"
width="50%"
>
<el-form> <el-form>
<el-form-item :label="$t('保函/证书')"> <el-form-item :label="$t('保函/证书')">
<el-row :gutter="20" type="flex" justify="center"> <el-row :gutter="20" type="flex" justify="center">
...@@ -62,30 +186,38 @@ ...@@ -62,30 +186,38 @@
<el-input v-model="guaranteeUrl"></el-input> <el-input v-model="guaranteeUrl"></el-input>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<div style="height: 45px;overflow: hidden;"> <div style="height: 45px; overflow: hidden">
<file-upload v-model="guaranteeUrl" :fileType="['png', 'jpg', 'jpeg','pdf']" :limit="1" <file-upload
:isShowTip="false"></file-upload> v-model="guaranteeUrl"
:fileType="['png', 'jpg', 'jpeg', 'pdf']"
:limit="1"
:isShowTip="false"
></file-upload>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div>{{ $t('可上传图片,pdf文档') }}</div> <div>{{ $t("可上传图片,pdf文档") }}</div>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="text-align: center;"> <div style="text-align: center">
<el-button @click="setGuarantee">{{ $t('保 存') }}</el-button> <el-button @click="setGuarantee">{{ $t("保 存") }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:title="$t('操作日志')" :title="$t('操作日志')"
:visible.sync="operationLogShow" :visible.sync="operationLogShow"
width="50%"> width="50%"
>
<el-table :data="operationLogList"> <el-table :data="operationLogList">
<el-table-column :label="$t('标题')" prop="title"></el-table-column> <el-table-column :label="$t('标题')" prop="title"></el-table-column>
<el-table-column :label="$t('操作内容')" prop="content"></el-table-column> <el-table-column
:label="$t('操作内容')"
prop="content"
></el-table-column>
<el-table-column :label="$t('操作人')" prop="userId"> <el-table-column :label="$t('操作人')" prop="userId">
<template v-slot="{row}"> <template v-slot="{ row }">
{{ details.identityName }} {{ details.identityName }}
</template> </template>
</el-table-column> </el-table-column>
...@@ -96,75 +228,154 @@ ...@@ -96,75 +228,154 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作ip')" prop="ip"></el-table-column> <el-table-column :label="$t('操作ip')" prop="ip"></el-table-column>
</el-table> </el-table>
<pagination v-show="totalLog > 0" :total="totalLog" :page.sync="operationLogFrom.page" <pagination
:limit.sync="operationLogFrom.row" v-show="totalLog > 0"
@pagination="getOperationLogList"/> :total="totalLog"
:page.sync="operationLogFrom.page"
:limit.sync="operationLogFrom.row"
@pagination="getOperationLogList"
/>
</el-dialog> </el-dialog>
<el-dialog <el-dialog :title="$t('认证')" :visible.sync="attestationShow" width="80%">
:title="$t('认证')"
:visible.sync="attestationShow"
width="80%">
<div class="details"> <div class="details">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane :label="$t('身份证')" name="1"> <el-tab-pane :label="$t('身份证')" name="1">
<div style="padding:0 40px;box-sizing: border-box;"> <div style="padding: 0 40px; box-sizing: border-box">
<el-form :disabled="[2,3].includes(IdDetails.status) && modifyIdCard" ref="formId" label-position="left" <el-form
label-width="100px" :rules="rulesId" :model="IdDetails"> :disabled="[2, 3].includes(IdDetails.status) && modifyIdCard"
ref="formId"
label-position="left"
label-width="100px"
:rules="rulesId"
:model="IdDetails"
>
<el-form-item :label="$t('姓名')" prop="name"> <el-form-item :label="$t('姓名')" prop="name">
<el-input v-model="IdDetails.name"></el-input> <el-input v-model="IdDetails.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('证件类型')" prop="cardType"> <el-form-item :label="$t('证件类型')" prop="cardType">
<dict-selector v-model="IdDetails.cardType" :type="DICT_TYPE.CERTIFICATE_TYPE"></dict-selector> <dict-selector
v-model="IdDetails.cardType"
:type="DICT_TYPE.CERTIFICATE_TYPE"
></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('证件号码')" prop="cardNumber"> <el-form-item :label="$t('证件号码')" prop="cardNumber">
<el-input v-model="IdDetails.cardNumber"></el-input> <el-input v-model="IdDetails.cardNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('证件正面照')" prop="img1"> <el-form-item :label="$t('证件正面照')" prop="img1">
<div> <div>
<el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img1"></el-input> <el-input
<ImageUpload :isShowTip="false" v-model="IdDetails.img1" :limit="1"></ImageUpload> readonly
style="margin-bottom: 20px"
v-model="IdDetails.img1"
></el-input>
<ImageUpload
:isShowTip="false"
v-model="IdDetails.img1"
:limit="1"
></ImageUpload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('证件背面照')" prop="img2"> <el-form-item :label="$t('证件背面照')" prop="img2">
<div> <div>
<el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img2"></el-input> <el-input
<ImageUpload :isShowTip="false" :limit="1" v-model="IdDetails.img2"></ImageUpload> readonly
style="margin-bottom: 20px"
v-model="IdDetails.img2"
></el-input>
<ImageUpload
:isShowTip="false"
:limit="1"
v-model="IdDetails.img2"
></ImageUpload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('审核状态')" v-if="modifyIdCard && IdDetails.status !== 0 "> <el-form-item
:label="$t('审核状态')"
v-if="modifyIdCard && IdDetails.status !== 0"
>
{{ {{
getDictDatas(DICT_TYPE.AUDIT_STATUS)[IdDetails.status] ? getDictDatas(DICT_TYPE.AUDIT_STATUS)[IdDetails.status].label : '' getDictDatas(DICT_TYPE.AUDIT_STATUS)[IdDetails.status]
? getDictDatas(DICT_TYPE.AUDIT_STATUS)[IdDetails.status]
.label
: ""
}} }}
</el-form-item> </el-form-item>
<el-form-item :label="$t('审核时间')" v-if="[2,3].includes(IdDetails.status) && modifyIdCard"> <el-form-item
:label="$t('审核时间')"
v-if="[2, 3].includes(IdDetails.status) && modifyIdCard"
>
{{ parseTime(IdDetails.auditTime) }} {{ parseTime(IdDetails.auditTime) }}
</el-form-item> </el-form-item>
<el-form-item v-if="modifyIdCard && IdDetails.status !== 0" :label="$t('审核备注')"> <el-form-item
<el-input v-model="IdDetails.auditRemark" :disabled="IdDetails.status === 3" v-if="modifyIdCard && IdDetails.status !== 0"
type="textarea"></el-input> :label="$t('审核备注')"
>
<el-input
v-model="IdDetails.auditRemark"
:disabled="IdDetails.status === 3"
type="textarea"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div v-if="IdDetails.status === 1" style="text-align: center;margin-top: 20px;"> <div
<el-button type="primary" @click="idCardAuditFn(2)">{{ $t('审核通过') }}</el-button> v-if="IdDetails.status === 1"
<el-button type="primary" @click="idCardAuditFn(3)">{{ $t('审核不通过') }}</el-button> style="text-align: center; margin-top: 20px"
<el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button> >
<el-button type="primary" @click="idCardAuditFn(2)">{{
$t("审核通过")
}}</el-button>
<el-button type="primary" @click="idCardAuditFn(3)">{{
$t("审核不通过")
}}</el-button>
<el-button @click="attestationShow = false">{{
$t("取 消")
}}</el-button>
</div> </div>
<div v-if="IdDetails.status === 2 || IdDetails.status === 3" style="text-align: center;margin-top: 20px;"> <div
<el-button type="primary" v-if="modifyIdCard" @click="modifyIdCard = false;">{{ $t('修 改') }} v-if="IdDetails.status === 2 || IdDetails.status === 3"
style="text-align: center; margin-top: 20px"
>
<el-button
type="primary"
v-if="modifyIdCard"
@click="modifyIdCard = false"
>{{ $t("修 改") }}
</el-button> </el-button>
<el-button type="primary" v-else @click="setMemberUserUpdateIdCard">{{ $t('提交审核') }}</el-button> <el-button
<el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button> type="primary"
v-else
@click="setMemberUserUpdateIdCard"
>{{ $t("提交审核") }}</el-button
>
<el-button @click="attestationShow = false">{{
$t("取 消")
}}</el-button>
</div> </div>
<div v-if="IdDetails.status === 0" style="text-align: center;margin-top: 20px;"> <div
<el-button type="primary" @click="submitId">{{ $t('上 传') }}</el-button> v-if="IdDetails.status === 0"
<el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button> style="text-align: center; margin-top: 20px"
>
<el-button type="primary" @click="submitId">{{
$t("上 传")
}}</el-button>
<el-button @click="attestationShow = false">{{
$t("取 消")
}}</el-button>
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('营业执照')" name="2"> <el-tab-pane :label="$t('营业执照')" name="2">
<div style="width: 500px;padding:0 40px;box-sizing: border-box;"> <div style="width: 500px; padding: 0 40px; box-sizing: border-box">
<el-form :disabled="modifyLicense && [2,3].includes(enterpriseFrom.status)" :rules="rulesEnterprise" <el-form
:model="enterpriseFrom" label-position="left" ref="formEnter" label-width="100px"> :disabled="
modifyLicense && [2, 3].includes(enterpriseFrom.status)
"
:rules="rulesEnterprise"
:model="enterpriseFrom"
label-position="left"
ref="formEnter"
label-width="100px"
>
<el-form-item :label="$t('企业名称')" prop="name"> <el-form-item :label="$t('企业名称')" prop="name">
<el-input v-model="enterpriseFrom.name"></el-input> <el-input v-model="enterpriseFrom.name"></el-input>
</el-form-item> </el-form-item>
...@@ -176,40 +387,102 @@ ...@@ -176,40 +387,102 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('证件照')" prop="img1"> <el-form-item :label="$t('证件照')" prop="img1">
<div> <div>
<el-input readonly style="margin-bottom: 20px" v-model="enterpriseFrom.img1"></el-input> <el-input
<ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img1"></ImageUpload> readonly
style="margin-bottom: 20px"
v-model="enterpriseFrom.img1"
></el-input>
<ImageUpload
:isShowTip="false"
:limit="1"
v-model="enterpriseFrom.img1"
></ImageUpload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('附件')"> <el-form-item :label="$t('附件')">
<el-input readonly v-model="enterpriseFrom.img2"></el-input> <el-input readonly v-model="enterpriseFrom.img2"></el-input>
<ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img2"></ImageUpload> <ImageUpload
:isShowTip="false"
:limit="1"
v-model="enterpriseFrom.img2"
></ImageUpload>
</el-form-item> </el-form-item>
<el-form-item v-if="modifyLicense && enterpriseFrom.status !== 0 " :label="$t('审核状态')"> <el-form-item
{{ getDictDatas(DICT_TYPE.AUDIT_STATUS)[enterpriseFrom.status].label }} v-if="modifyLicense && enterpriseFrom.status !== 0"
:label="$t('审核状态')"
>
{{
getDictDatas(DICT_TYPE.AUDIT_STATUS)[enterpriseFrom.status]
.label
}}
</el-form-item> </el-form-item>
<el-form-item v-if="[2,3].includes(enterpriseFrom.status) && modifyLicense " :label="$t('审核时间')"> <el-form-item
v-if="[2, 3].includes(enterpriseFrom.status) && modifyLicense"
:label="$t('审核时间')"
>
{{ parseTime(enterpriseFrom.auditTime) }} {{ parseTime(enterpriseFrom.auditTime) }}
</el-form-item> </el-form-item>
<el-form-item v-if="modifyLicense && enterpriseFrom.status !== 0" :label="$t('审核备注')"> <el-form-item
<el-input v-model="enterpriseFrom.auditRemark" :disabled="enterpriseFrom.status === 3" v-if="modifyLicense && enterpriseFrom.status !== 0"
type="textarea"></el-input> :label="$t('审核备注')"
>
<el-input
v-model="enterpriseFrom.auditRemark"
:disabled="enterpriseFrom.status === 3"
type="textarea"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div v-if="enterpriseFrom.status === 1" style="text-align: center;margin-top: 20px;"> <div
<el-button type="primary" @click="certificateVerificationFn(2)">{{ $t('审核通过') }}</el-button> v-if="enterpriseFrom.status === 1"
<el-button type="primary" @click="certificateVerificationFn(3)">{{ $t('审核不通过') }}</el-button> style="text-align: center; margin-top: 20px"
<el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button> >
<el-button
type="primary"
@click="certificateVerificationFn(2)"
>{{ $t("审核通过") }}</el-button
>
<el-button
type="primary"
@click="certificateVerificationFn(3)"
>{{ $t("审核不通过") }}</el-button
>
<el-button @click="attestationShow = false">{{
$t("取 消")
}}</el-button>
</div> </div>
<div v-if="enterpriseFrom.status === 2 || enterpriseFrom.status === 3" <div
style="text-align: center;margin-top: 20px;"> v-if="
<el-button type="primary" v-if="modifyLicense" @click="modifyLicense = false">{{ $t('修 改') }} enterpriseFrom.status === 2 || enterpriseFrom.status === 3
"
style="text-align: center; margin-top: 20px"
>
<el-button
type="primary"
v-if="modifyLicense"
@click="modifyLicense = false"
>{{ $t("修 改") }}
</el-button> </el-button>
<el-button type="primary" v-else @click="setMemberUserUpdateEnterprise">{{ $t('提交审核') }}</el-button> <el-button
<el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button> type="primary"
v-else
@click="setMemberUserUpdateEnterprise"
>{{ $t("提交审核") }}</el-button
>
<el-button @click="attestationShow = false">{{
$t("取 消")
}}</el-button>
</div> </div>
<div v-if="enterpriseFrom.status === 0" style="text-align: center;margin-top: 20px;"> <div
<el-button type="primary" @click="submit">{{ $t('上 传') }}</el-button> v-if="enterpriseFrom.status === 0"
<el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button> style="text-align: center; margin-top: 20px"
>
<el-button type="primary" @click="submit">{{
$t("上 传")
}}</el-button>
<el-button @click="attestationShow = false">{{
$t("取 消")
}}</el-button>
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
...@@ -220,122 +493,185 @@ ...@@ -220,122 +493,185 @@
</template> </template>
<script> <script>
import { import {
createAuditIdCard, deleteUser, createAuditIdCard,
deleteUser,
memberGetAuthEnterpriseInfo, memberGetAuthEnterpriseInfo,
memberGetAuthIdcardInfo, memberGetAuthIdcardInfo,
memberUserAuditEnterprise, memberUserAuditEnterprise,
memberUserAuditIdCard, memberUserAuditIdCard,
memberUserGet, memberUserUpdateEnterprise, memberUserGet,
memberUserUpdateEnterprise,
memberUserUpdateIdCard, memberUserUpdateIdCard,
operationLogApi, seTupdateBackletter, userCreateAuditEnterprise operationLogApi,
seTupdateBackletter,
userCreateAuditEnterprise,
} from "@/api/member/user"; } from "@/api/member/user";
import FileUpload from "@/components/FileUpload/index.vue"; import FileUpload from "@/components/FileUpload/index.vue";
import ImageUpload from "@/components/ImageUpload/index.vue"; import ImageUpload from "@/components/ImageUpload/index.vue";
import {DICT_TYPE, getDictDatas} from "@/utils/dict"; import { DICT_TYPE, getDictDatas } from "@/utils/dict";
export default { export default {
name: "memberDetails", name: "memberDetails",
components: {ImageUpload, FileUpload}, components: { ImageUpload, FileUpload },
data() { data() {
return { return {
// 表单校验 // 表单校验
rulesId: { rulesId: {
name: [{required: true, message: this.$t('用户昵称不能为空'), trigger: "blur"}], name: [
cardType: [{required: true, message: this.$t('证件类型不能为空'), trigger: "blur"}], {
cardNumber: [{required: true, message: this.$t('证件号码不能为空'), trigger: "blur"}], required: true,
img1: [{required: true, message: this.$t('身份正面照不能为空'), trigger: ['blur', 'change']}], message: this.$t("用户昵称不能为空"),
img2: [{required: true, message: this.$t('身份正面照不能为空'), trigger: ['blur', 'change']}], trigger: "blur",
},
],
cardType: [
{
required: true,
message: this.$t("证件类型不能为空"),
trigger: "blur",
},
],
cardNumber: [
{
required: true,
message: this.$t("证件号码不能为空"),
trigger: "blur",
},
],
img1: [
{
required: true,
message: this.$t("身份正面照不能为空"),
trigger: ["blur", "change"],
},
],
img2: [
{
required: true,
message: this.$t("身份正面照不能为空"),
trigger: ["blur", "change"],
},
],
}, },
rulesEnterprise: { rulesEnterprise: {
name: [{required: true, message: this.$t('企业名称不能为空'), trigger: "blur"}], name: [
legalName: [{required: true, message: this.$t('企业法人不能为空'), trigger: "blur"}], {
cardNumber: [{required: true, message: this.$t('证件号码不能为空'), trigger: "blur"}], required: true,
img1: [{required: true, message: this.$t('证件照不能为空'), trigger: ['blur', 'change']}], message: this.$t("企业名称不能为空"),
trigger: "blur",
},
],
legalName: [
{
required: true,
message: this.$t("企业法人不能为空"),
trigger: "blur",
},
],
cardNumber: [
{
required: true,
message: this.$t("证件号码不能为空"),
trigger: "blur",
},
],
img1: [
{
required: true,
message: this.$t("证件照不能为空"),
trigger: ["blur", "change"],
},
],
}, },
getDictDatas, getDictDatas,
DICT_TYPE, DICT_TYPE,
details: { details: {
"address": "", address: "",
"areaCode": "", areaCode: "",
"avatar": "", avatar: "",
"backLetterImg": "", backLetterImg: "",
"birthday": "", birthday: "",
"createTime": "", createTime: "",
"customerStatus": "", customerStatus: "",
"department": "", department: "",
"email": "", email: "",
"englishName": "", englishName: "",
"enterpriseAddress": "", enterpriseAddress: "",
"enterpriseAuditCreateTime": "", enterpriseAuditCreateTime: "",
"enterpriseAuditRemark": "", enterpriseAuditRemark: "",
"enterpriseAuditStatus": "", enterpriseAuditStatus: "",
"enterpriseAuditTime": "", enterpriseAuditTime: "",
"enterpriseBrand": "", enterpriseBrand: "",
"enterpriseDesc": "", enterpriseDesc: "",
"enterpriseName": "", enterpriseName: "",
"enterpriseNameEn": "", enterpriseNameEn: "",
"enterpriseStall": "", enterpriseStall: "",
"enterpriseWebsite": "", enterpriseWebsite: "",
"gender": "", gender: "",
"groupCount": "", groupCount: "",
"id": "", id: "",
"identityAuditCreateTime": "", identityAuditCreateTime: "",
"identityAuditRemark": "", identityAuditRemark: "",
"identityAuditStatus": "", identityAuditStatus: "",
"identityAuditTime": "", identityAuditTime: "",
"identityName": "", identityName: "",
"isDeal": "", isDeal: "",
"isSimplePassword": "", isSimplePassword: "",
"jobPosition": "", jobPosition: "",
"loginDate": "", loginDate: "",
"loginIp": "", loginIp: "",
"mobile": "", mobile: "",
"nickname": "", nickname: "",
"password": "", password: "",
"registDate": "", registDate: "",
"registerIp": "", registerIp: "",
"status": "" status: "",
}, },
publicObj: {}, publicObj: {},
guaranteeShow: false, guaranteeShow: false,
guaranteeUrl: '', guaranteeUrl: "",
operationLogFrom: { operationLogFrom: {
page: 1, page: 1,
row: 10, row: 10,
userId: undefined userId: undefined,
}, },
attestationShow: false, attestationShow: false,
modifyLicense: false, modifyLicense: false,
modifyIdCard: true,//修改身份证 modifyIdCard: true, //修改身份证
IdDetails: {}, IdDetails: {},
enterpriseFrom: {}, enterpriseFrom: {},
operationLogShow: false, operationLogShow: false,
activeName: "1", activeName: "1",
operationLogList: [], operationLogList: [],
totalLog: 0, totalLog: 0,
} };
}, },
created() { created() {
this.getDetails() this.getDetails();
}, },
methods: { methods: {
deleteFn(row) { deleteFn(row) {
const nickname = row.nickname; const nickname = row.nickname;
this.$modal.confirm(`${this.$t('是否确认删除昵称为{nickname}的会员?', {nickname})}`).then(function () { this.$modal
return deleteUser(row.id) .confirm(
}).then(res => { `${this.$t("是否确认删除昵称为{nickname}的会员?", { nickname })}`
this.$message.success(this.$t('删除成功')) )
this.$router.back() .then(function () {
}).catch(() => { return deleteUser(row.id);
// this.$message.success(this.$t('删除失败')) })
} .then((res) => {
) this.$message.success(this.$t("删除成功"));
this.$router.back();
})
.catch(() => {
// this.$message.success(this.$t('删除失败'))
});
}, },
getDetails() { getDetails() {
memberUserGet({id: this.$route.params.id}).then(r => { memberUserGet({ id: this.$route.params.id }).then((r) => {
console.log(r, 'rrrr') console.log(r, "rrrr");
this.details = r.data this.details = r.data;
}) });
}, },
// 保函证书 // 保函证书
guarantee(row) { guarantee(row) {
...@@ -347,19 +683,18 @@ export default { ...@@ -347,19 +683,18 @@ export default {
operationLogFn(row) { operationLogFn(row) {
this.publicObj = row; this.publicObj = row;
this.operationLogFrom.page = 1; this.operationLogFrom.page = 1;
this.operationLogFrom.userId = row.id this.operationLogFrom.userId = row.id;
this.operationLogShow = true; this.operationLogShow = true;
this.operationLogList = []; this.operationLogList = [];
this.getOperationLogList(); this.getOperationLogList();
}, },
getOperationLogList() { getOperationLogList() {
operationLogApi(this.operationLogFrom).then(r => { operationLogApi(this.operationLogFrom).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.operationLogList = r.data.list this.operationLogList = r.data.list;
this.totalLog = r.data.total this.totalLog = r.data.total;
} }
}) });
}, },
identityFn(row, val) { identityFn(row, val) {
this.attestationShow = true; this.attestationShow = true;
...@@ -380,51 +715,51 @@ export default { ...@@ -380,51 +715,51 @@ export default {
}, },
getIdentityDetails() { getIdentityDetails() {
this.resetId(); this.resetId();
memberGetAuthIdcardInfo({userId: this.publicObj.id}).then(r => { memberGetAuthIdcardInfo({ userId: this.publicObj.id }).then((r) => {
if (r.code === 0 && !!r.data) { if (r.code === 0 && !!r.data) {
this.IdDetails = r.data this.IdDetails = r.data;
} }
}) });
}, },
getEnterpriseFn() { getEnterpriseFn() {
this.resetEnterprise(); this.resetEnterprise();
memberGetAuthEnterpriseInfo({userId: this.publicObj.id}).then(r => { memberGetAuthEnterpriseInfo({ userId: this.publicObj.id }).then((r) => {
if (r.code === 0 && !!r.data) { if (r.code === 0 && !!r.data) {
this.enterpriseFrom = r.data this.enterpriseFrom = r.data;
} }
}) });
}, },
//身份证审核 //身份证审核
idCardAuditFn(val) { idCardAuditFn(val) {
let p = { let p = {
auditStatus: val, auditStatus: val,
userCardAuthId: this.IdDetails.id, userCardAuthId: this.IdDetails.id,
auditRemark: this.IdDetails.auditRemark auditRemark: this.IdDetails.auditRemark,
} };
memberUserAuditIdCard(p).then(r => { memberUserAuditIdCard(p).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.$message.success(this.$t('修改成功')); this.$message.success(this.$t("修改成功"));
this.getList() this.getList();
this.getIdentityDetails() this.getIdentityDetails();
} }
}) });
}, },
// 企业证书审核 // 企业证书审核
certificateVerificationFn(val) { certificateVerificationFn(val) {
let p = { let p = {
auditStatus: val, auditStatus: val,
userEnterpriseAuthId: this.enterpriseFrom.id, userEnterpriseAuthId: this.enterpriseFrom.id,
auditRemark: this.enterpriseFrom.auditRemark auditRemark: this.enterpriseFrom.auditRemark,
} };
memberUserAuditEnterprise(p).then(r => { memberUserAuditEnterprise(p).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.getList() this.getList();
this.getEnterpriseFn(); this.getEnterpriseFn();
} }
}) });
}, },
setMemberUserUpdateIdCard() { setMemberUserUpdateIdCard() {
this.$refs.formId.validate(async valid => { this.$refs.formId.validate(async (valid) => {
if (valid) { if (valid) {
let p = { let p = {
cardNumber: this.IdDetails.cardNumber, cardNumber: this.IdDetails.cardNumber,
...@@ -435,21 +770,21 @@ export default { ...@@ -435,21 +770,21 @@ export default {
userCardAuthId: this.IdDetails.id, userCardAuthId: this.IdDetails.id,
auditPass: true, auditPass: true,
}; };
memberUserUpdateIdCard(p).then(r => { memberUserUpdateIdCard(p).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.$message.success(this.$t('修改成功')) this.$message.success(this.$t("修改成功"));
if (p.auditPass === true) { if (p.auditPass === true) {
this.getIdentityDetails() this.getIdentityDetails();
} }
this.getList() this.getList();
this.modifyIdCard = true; this.modifyIdCard = true;
} }
}) });
} }
}) });
}, },
setMemberUserUpdateEnterprise() { setMemberUserUpdateEnterprise() {
this.$refs.formEnter.validate(async valid => { this.$refs.formEnter.validate(async (valid) => {
if (valid) { if (valid) {
let p = { let p = {
cardNumber: this.enterpriseFrom.cardNumber, cardNumber: this.enterpriseFrom.cardNumber,
...@@ -459,19 +794,19 @@ export default { ...@@ -459,19 +794,19 @@ export default {
name: this.enterpriseFrom.name, name: this.enterpriseFrom.name,
userEnterpriseAuthId: this.enterpriseFrom.id, userEnterpriseAuthId: this.enterpriseFrom.id,
auditPass: true, auditPass: true,
} };
memberUserUpdateEnterprise(p).then(r => { memberUserUpdateEnterprise(p).then((r) => {
if (r.code === 0) { if (r.code === 0) {
if (p.auditPass === true) { if (p.auditPass === true) {
this.getEnterpriseFn(); this.getEnterpriseFn();
} }
this.getList() this.getList();
this.modifyLicense = true; this.modifyLicense = true;
this.$message.success(this.$t('修改成功')); this.$message.success(this.$t("修改成功"));
} }
}) });
} }
}) });
}, },
submit() { submit() {
let p = { let p = {
...@@ -481,20 +816,20 @@ export default { ...@@ -481,20 +816,20 @@ export default {
legalName: this.enterpriseFrom.legalName, legalName: this.enterpriseFrom.legalName,
name: this.enterpriseFrom.name, name: this.enterpriseFrom.name,
userEnterpriseAuthId: this.enterpriseFrom.id, userEnterpriseAuthId: this.enterpriseFrom.id,
userId: this.publicObj.id userId: this.publicObj.id,
} };
userCreateAuditEnterprise(p).then(r => { userCreateAuditEnterprise(p).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.$message.success(this.$t('添加成功!')); this.$message.success(this.$t("添加成功!"));
this.enterpriseFrom.status = 2 this.enterpriseFrom.status = 2;
this.enterpriseFrom.auditTime = new Date().getTime() this.enterpriseFrom.auditTime = new Date().getTime();
this.getEnterpriseFn(); this.getEnterpriseFn();
this.getList() this.getList();
} }
}) });
}, },
submitId() { submitId() {
this.$refs.formId.validate(async valid => { this.$refs.formId.validate(async (valid) => {
if (valid) { if (valid) {
let p = { let p = {
cardNumber: this.IdDetails.cardNumber, cardNumber: this.IdDetails.cardNumber,
...@@ -503,19 +838,19 @@ export default { ...@@ -503,19 +838,19 @@ export default {
img2: this.IdDetails.img2, img2: this.IdDetails.img2,
name: this.IdDetails.name, name: this.IdDetails.name,
status: 2, status: 2,
userId: this.publicObj.id userId: this.publicObj.id,
}; };
createAuditIdCard(p).then(r => { createAuditIdCard(p).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.$message.success(this.$t('添加成功!')); this.$message.success(this.$t("添加成功!"));
this.IdDetails.status = 2 this.IdDetails.status = 2;
this.IdDetails.auditTime = new Date().getTime() this.IdDetails.auditTime = new Date().getTime();
this.getIdentityDetails(); this.getIdentityDetails();
this.getList() this.getList();
} }
}) });
} }
}) });
}, },
/** 表单重置 */ /** 表单重置 */
resetId() { resetId() {
...@@ -528,11 +863,11 @@ export default { ...@@ -528,11 +863,11 @@ export default {
id: 0, id: 0,
img1: undefined, img1: undefined,
img2: undefined, img2: undefined,
name: '', name: "",
status: 0, status: 0,
userId: 0 userId: 0,
} };
},//清空身份证 }, //清空身份证
resetEnterprise() { resetEnterprise() {
this.enterpriseFrom = { this.enterpriseFrom = {
auditRemark: undefined, auditRemark: undefined,
...@@ -545,21 +880,23 @@ export default { ...@@ -545,21 +880,23 @@ export default {
legalName: undefined, legalName: undefined,
name: undefined, name: undefined,
status: 0, status: 0,
userId: undefined userId: undefined,
} };
},//清空企业 }, //清空企业
setGuarantee() { setGuarantee() {
seTupdateBackletter({userId: this.publicObj.id, backLetter: this.guaranteeUrl}).then(r => { seTupdateBackletter({
userId: this.publicObj.id,
backLetter: this.guaranteeUrl,
}).then((r) => {
if (r.code === 0) { if (r.code === 0) {
this.publicObj.backLetterImg = this.guaranteeUrl; this.publicObj.backLetterImg = this.guaranteeUrl;
this.guaranteeShow = false; this.guaranteeShow = false;
this.$message.success(this.$t('保存成功')); this.$message.success(this.$t("保存成功"));
} }
}) });
}, },
} },
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
</style> </style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="运输方式" prop="titleZh">
<el-select v-model="queryParams.titleZh" clearable style="width: 200px">
<el-option label="海运拼柜" value="海运拼柜"></el-option>
<el-option label="专线空运" value="专线空运"></el-option>
</el-select>
</el-form-item>
<el-form-item label="基础单位" prop="fuhao">
<el-input
v-model="queryParams.fuhao"
placeholder="请输入基础单位"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item v-show="false">
<Treeselect v-model="id" :options="listTree"> </Treeselect>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['report:vz:create']"
>
{{ $t("新增") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
v-show="false"
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['my:test:export']"
>
{{ $t("导出") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
v-show="true"
size="mini"
@click="TestFun"
>
{{ $t("测试功能") }}</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="list">
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="运输方式" align="center" prop="titleZh" />
<el-table-column label="基础单位" align="center" prop="fuhao" />
<el-table-column label="V值" align="center" prop="vz" width="100">
</el-table-column>
<el-table-column label="修改日期" align="center" prop="updateTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['report:vz:update']"
>
{{ $t("修改") }}</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['report:vz:delete']"
>
{{ $t("删除") }}</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="运输方式" prop="titleZh">
<el-select
v-model="form.titleZh"
@change="handleSelectChange"
clearable
style="width: 200px"
>
<el-option label="海运拼柜" value="海运拼柜"></el-option>
<el-option label="专线空运" value="专线空运"></el-option>
</el-select>
</el-form-item>
<el-form-item label="1V=" prop="vz">
<el-input v-model="form.vz" placeholder="" style="width: 100px" />
<el-input
v-model="form.fuhao"
style="width: 100px"
placeholder="基础单位"
readonly="true"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
create,
update,
del,
getModel,
getPageList,
exportExcel,
test,
} from "@/api/report/vz";
import Treeselect from "@riophae/vue-treeselect";
import "@/assets/styles/vue-treeselect.css";
//弹出消息框
import { MessageBox } from "element-ui";
//日期库函数
import dayjs from "dayjs";
//2024-05-14 银行收款明细列表
export default {
name: "ReportBankReceiptDetailsIndex",
components: {
Treeselect,
},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
list: [],
// 弹出层标题
title: "",
//是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
titleZh: null, //运输方式
fuhao: null, //基础单位
},
// 表单参数
form: {},
// 表单校验
rules: {
vz: [
{
required: true,
message: this.$t("V值不能为空"),
trigger: "blur",
},
],
},
id: 1,
listTree: [
{
//https://www.cnblogs.com/javahr/p/13607024.html
id: 1,
label: "1",
children: [
{
id: 11,
label: "11",
children: [
{
id: 111,
label: "111",
},
],
},
{
id: 12,
label: "12",
},
],
},
{
id: 2,
label: "2",
children: [
{
id: 21,
label: "21",
},
{
id: 22,
label: "22",
},
],
},
],
};
},
created() {
this.getList();
},
methods: {
handleSelectChange(sValue) {
if (sValue == "海运拼柜") {
this.form.fuhao = "M3";
} else if (sValue == "专线空运") {
this.form.fuhao = "KG";
}
},
/** 查询列表 */
getList() {
this.loading = true;
// 处理查询参数
let params = { ...this.queryParams };
// 执行查询
getPageList(params).then((response) => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
/** 表单重置 */
reset() {
this.form = {
id: undefined,
titleZh: undefined, //运输方式
fuhao: undefined, //基础单位
vz: undefined, //v值
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加V值";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id;
getModel(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改V值";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (!valid) {
return;
}
// 修改的提交
if (this.form.id != null) {
update(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
return;
}
// 添加的提交
create(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
this.$modal
.confirm("是否确认删除选中数据项?")
.then(function () {
return del(id);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
TestFun() {
var bR= dayjs('2024-05-11').isBefore(dayjs('2024-05-12'));
alert(bR);
//获取当前日期
var now = dayjs().format('YYYY-MM-DD dddd HH:mm:ss.SSS A');
MessageBox(now);
//dayjs("2019-01-25").toArray(); // [ 2019, 0, 25, 0, 0, 0, 0 ]
var dJs = dayjs("2019-01-25").toJSON(); //'2019-01-25T02:00:00.000Z'
//MessageBox(dJs);
//dayjs 使用的相关参考
//https://segmentfault.com/a/1190000040835957?sort=newest
//https://dayjs.fenxianglu.cn/category/plugin.html#advancedformat
//年 : dayjs().year()
//月 : dayjs().month()
//日 : dayjs().date()
//星期 : dayjs().day()
//时 : dayjs().hour()
//分 : dayjs().minute()
//秒 : dayjs().second()
//毫秒 : dayjs().millisecond()
//调用后台函数
/*
test().then((response) => {
this.$modal.msgSuccess("测试发送");
});*/
},
/** 导出按钮操作 */
handleExport() {
// 处理查询参数
let params = { ...this.queryParams };
params.pageNo = undefined;
params.pageSize = undefined;
// 执行导出
this.$modal
.confirm("是否确认导出所有测试数据项?")
.then(() => {
this.exportLoading = true;
return exportExcel(params);
})
.then((response) => {
this.$download.excel(response, "${table.classComment}.xls");
this.exportLoading = false;
})
.catch(() => {});
},
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children,
};
},
},
};
</script>
\ No newline at end of file
...@@ -45,7 +45,11 @@ ...@@ -45,7 +45,11 @@
:normalizer="normalizer" :normalizer="normalizer"
/> />
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="salesmanid" v-show="showCustomsManage"> <el-form-item
label="客户经理"
prop="salesmanid"
v-show="showCustomsManage"
>
<user-selector <user-selector
manage manage
v-model="queryParams.salesmanid" v-model="queryParams.salesmanid"
...@@ -71,8 +75,12 @@ ...@@ -71,8 +75,12 @@
<div class="card-panel-text"> <div class="card-panel-text">
{{ $t("业绩总览 Total") }} {{ $t("业绩总览 Total") }}
</div> </div>
<div class="card-panel-num">{{ allsumvolume }}</div> <div class="card-panel-num">
<div style="text-align: right">同比:13%</div> {{ SalesReportCountList1.curValue }}V
</div>
<div style="text-align: right">
同比:{{ SalesReportCountList1.tbShow }}
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -85,8 +93,12 @@ ...@@ -85,8 +93,12 @@
<div class="card-panel-text"> <div class="card-panel-text">
{{ $t("海运拼柜") }} {{ $t("海运拼柜") }}
</div> </div>
<div class="card-panel-num">{{ sumvolume1 }}</div> <div class="card-panel-num">
<div style="text-align: right">同比:13%</div> {{ SalesReportCountList2.curValue }}M3
</div>
<div style="text-align: right">
同比:{{ SalesReportCountList2.tbShow }}
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -99,8 +111,12 @@ ...@@ -99,8 +111,12 @@
<div class="card-panel-text"> <div class="card-panel-text">
{{ $t("专线空运") }} {{ $t("专线空运") }}
</div> </div>
<div class="card-panel-num">{{ sumweight3 }}</div> <div class="card-panel-num">
<div style="text-align: right">同比:13%</div> {{ SalesReportCountList3.curValue }}KG
</div>
<div style="text-align: right">
同比:{{ SalesReportCountList3.tbShow }}
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -115,8 +131,12 @@ ...@@ -115,8 +131,12 @@
<div class="card-panel-text"> <div class="card-panel-text">
{{ $t("成交总览 Total") }} {{ $t("成交总览 Total") }}
</div> </div>
<div class="card-panel-num">{{ sumCustomerCount }}</div> <div class="card-panel-num">
<div style="text-align: right">同比:13%</div> {{ sumCustomerObject.sumCustomerCount }}
</div>
<div style="text-align: right">
同比:{{ sumCustomerObject.tbShow }}
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -129,8 +149,12 @@ ...@@ -129,8 +149,12 @@
<div class="card-panel-text"> <div class="card-panel-text">
{{ $t("首次成交") }} {{ $t("首次成交") }}
</div> </div>
<div class="card-panel-num">{{ fisCustomerCount }}</div> <div class="card-panel-num">
<div style="text-align: right">同比:13%</div> {{ fisCustomerObject.sumCustomerCount }}
</div>
<div style="text-align: right">
同比:{{ fisCustomerObject.tbShow }}
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -150,7 +174,10 @@ import Treeselect from "@riophae/vue-treeselect"; ...@@ -150,7 +174,10 @@ import Treeselect from "@riophae/vue-treeselect";
import "@/assets/styles/vue-treeselect.css"; import "@/assets/styles/vue-treeselect.css";
import { listSimpleDepts } from "@/api/system/dept"; import { listSimpleDepts } from "@/api/system/dept";
//报表权限接口 //报表权限接口
import { getCurUserPermission,getDeptChild } from "@/api/report/EcwReportPermission"; import {
getCurUserPermission,
getDeptChild,
} from "@/api/report/EcwReportPermission";
import { import {
SalesReportCount, SalesReportCount,
FirstCustomerCount, FirstCustomerCount,
...@@ -184,8 +211,12 @@ function getLastYear() { ...@@ -184,8 +211,12 @@ function getLastYear() {
let year = date.getFullYear(); let year = date.getFullYear();
return year.toString(); return year.toString();
} }
function goPage() {
alert(11);
}
//2024-05-01合并 //2024-05-01合并
//https://2zmzrd.axshare.com 报表原型地址
export default { export default {
name: "ReportSalesreportIndex", name: "ReportSalesreportIndex",
components: { components: {
...@@ -205,7 +236,7 @@ export default { ...@@ -205,7 +236,7 @@ export default {
}, },
height: { height: {
type: String, type: String,
default: "500px", default: "1000px",
}, },
autoResize: { autoResize: {
type: Boolean, type: Boolean,
...@@ -220,16 +251,17 @@ export default { ...@@ -220,16 +251,17 @@ export default {
exportLoading: false, exportLoading: false,
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
showCustomsManage: true,//是否显示客户经理查询条件 showCustomsManage: true, //是否显示客户经理查询条件
showDept: true,//是否显示部门查询条件 showDept: true, //是否显示部门查询条件
chart: null, chart: null,
allsumvolume: undefined, //总V值 SalesReportCountList3: {},
sumvolume1: undefined, //海运拼柜 SalesReportCountList2: {},
sumweight3: undefined, //专线空运 SalesReportCountList1: {},
sumCustomerCount: undefined, //成交客户总数 salesReportRespAll: [],
fisCustomerCount: undefined, //首次成交客户户数 sumCustomerObject: {}, //成交客户总数
fisCustomerObject: {}, //首次成交客户户数
dateRangeCreateTime: [], dateRangeCreateTime: [],
SalesReportRespShow:[], SalesReportRespShow: [],
queryParams: { queryParams: {
salesmanid: undefined, //销售经理 salesmanid: undefined, //销售经理
deptid: undefined, //部门 deptid: undefined, //部门
...@@ -261,66 +293,214 @@ export default { ...@@ -261,66 +293,214 @@ export default {
//this.deptData.add //this.deptData.add
}); });
}, },
getCustomerTargetCount() {
CustomerTargetCount(this.queryParams).then((response) => {
this.sumCustomerCount = response.data;
});
},
getSalesReportCount() { getSalesReportCount() {
//获取运输方式统计数 lanbm 2024-04-01 add //获取运输方式统计数 lanbm 2024-04-01 add
//数据遍历参考地址
//https://blog.csdn.net/weixin_49826079/article/details/132172368
SalesReportCount(this.queryParams).then((response) => { SalesReportCount(this.queryParams).then((response) => {
//业绩总览 this.SalesReportCountList1 = response.data[0];
this.allsumvolume = response.data.allsumvolume; this.SalesReportCountList2 = response.data[1];
//海运拼柜 this.SalesReportCountList3 = response.data[2];
this.sumvolume1 = response.data.sumvolume1;
//专线空运
this.sumweight3 = response.data.sumweight3;
}); });
}, },
getSalesReportCount() { getCustomerTargetCount() {
//获取运输方式统计数 lanbm 2024-04-01 add CustomerTargetCount(this.queryParams).then((response) => {
SalesReportCount(this.queryParams).then((response) => { this.sumCustomerObject = response.data;
//业绩总览
this.allsumvolume = response.data.allsumvolume;
//海运拼柜
this.sumvolume1 = response.data.sumvolume1;
//专线空运
this.sumweight3 = response.data.sumweight3;
}); });
}, },
getFirstCustomerCount() { getFirstCustomerCount() {
//获取首次成交客户数 lanbm 2024-04-01 add //获取首次成交客户数 lanbm 2024-04-01 add
FirstCustomerCount(this.queryParams).then((response) => { FirstCustomerCount(this.queryParams).then((response) => {
//首次成交客户数 //首次成交客户数
this.fisCustomerCount = response.data; this.fisCustomerObject = response.data;
}); });
}, },
initChart() { // 柱状图
var chartDom = this.$refs["mainBar"]; createChart() {
this.chart = echarts.init(chartDom, "macarons");
this.setOptions();
},
setOptions() {
this.loading = true;
getEChartData(this.queryParams).then((response) => { getEChartData(this.queryParams).then((response) => {
this.chart.setOption({ //图表参考网址
//https://blog.csdn.net/m0_65983287/article/details/133909409
let salesReportRespAll1 = response.data.salesReportRespAll;
var chartDom = this.$refs["mainBar"];
this.chart = echarts.init(chartDom, "macarons");
this.chart.on("click", (params) => {
if (this.isRight() == false) return;
let p = {};
if (params.componentType === "title") {
this.$router.push({
path: "/report/sales_analysis",
query: p,
});
return;
}
/*
this.queryParams.salesmanid = parseInt(
this.resultList[params.dataIndex].salesmanid
);
this.queryParams.number = this.resultList[params.dataIndex].number;
Object.assign(p, this.queryParams);*/
this.$router.push({
path: "/report/sales_analysis",
query: p,
});
});
this.option = {
title: { title: {
text: "月度业绩分布", text: "月度业绩分布", //主标题
link: "", //主标题链接
target: "self", //窗口打开方式self本窗口,blank新窗口
textStyle: {
//color: "skyblue", //主标题颜色
fontSize: "20", //主标题大小
},
subtext: "更多...", //副标题
sublink: "javascript:goPage()", //副标题链接
subtarget: "self", //self/blank
subtextStyle: {
//color: "#0f0",
fontSize: "10",
textAlign: "right",
},
left: "left", //位置
show: true, //是否显示true/false
textAlign: "left", //水平对齐:auto/left,right,center
textVerticalAlign: "auto", //垂直对齐:auto,top,middle,bottom
}, },
legend: {}, tooltip: {
grid: { trigger: "axis",
left: "3%", axisPointer: {
right: "4%", type: "shadow",
bottom: "3%", },
containLabel: true, formatter: function (params) {
//params 是一个数组,数组中每个元素代表一个系列的数据信息
var result = "";
params.forEach(function (item) {
let vR = salesReportRespAll1.filter(
(r) => r.strMonth === item.name
);
result ="统计月份:"+ item.name + "<br/>";
result +=
"Total:" +
vR[0].curValue +
" 同比:" +
vR[0].tbShow +
",环比:" +
vR[0].hbShow +
"<br/>";
result +=
"海运拼柜:" +
vR[0].curValue1 +
" 同比:" +
vR[0].tbShow1 +
",环比:" +
vR[0].hbShow1 +
"<br/>";
result +=
"专线空运:" +
vR[0].curValue3 +
" 同比:" +
vR[0].tbShow3 +
",环比:" +
vR[0].hbShow3 +
"<br/>";
});
return result;
},
}, },
legend: {},
xAxis: { xAxis: {
type: "value", type: "value",
boundaryGap: [0, 0.5], boundaryGap: [0, 0.5],
}, },
yAxis: response.data.objyAxis, yAxis: {
series: response.data.obSseries, type: "category",
}); data: response.data.objyAxis.data,
axisLabel: {
showMaxLabel: true,
interval: 0,
rotate: 0,
},
},
grid: {
show: false,
top: "5%",
right: "5%",
bottom: "5%",
left: "10%",
},
series: [
{
name: "Total",
data: response.data.obSseries[0].data,
type: "bar",
barGap: "0px",
label: {
show: true,
position: "right", //在上方显示
textStyle: {
//数值样式
fontSize: "16px",
color: "#999",
},
formatter: function (d) {
return d.data;
},
},
},
{
name: "海运拼柜",
data: response.data.obSseries[1].data,
type: "bar",
barGap: "0px",
label: {
show: true,
position: "right", //在上方显示
textStyle: {
//数值样式
fontSize: "16px",
color: "##999",
},
formatter: function (d) {
/*
let sum =
(
(d.data / (d.data + res[d.dataIndex].maleCount)) *
100
).toFixed(2) + "%";
*/
return d.data;
},
},
},
{
name: "专线空运",
data: response.data.obSseries[2].data,
type: "bar",
barGap: "0px",
label: {
show: true,
position: "right", //在上方显示
textStyle: {
//数值样式
fontSize: "16px",
color: "##999",
},
formatter: function (d) {
/*
let sum =
(
(d.data / (d.data + res[d.dataIndex].maleCount)) *
100
).toFixed(2) + "%";
*/
return d.data;
},
},
},
],
};
this.option && this.chart.setOption(this.option);
}); });
}, },
isChinese() { isChinese() {
...@@ -357,11 +537,11 @@ export default { ...@@ -357,11 +537,11 @@ export default {
//获取成交客户数,出重结果 //获取成交客户数,出重结果
this.getCustomerTargetCount(); this.getCustomerTargetCount();
//获取权限后再初始化统计图表 //获取权限后再初始化统计图表
this.initChart(); //this.initChart();
this.createChart();
this.loading = false; this.loading = false;
}); });
}, },
getList() {},
resetQuery() { resetQuery() {
this.queryParams = { this.queryParams = {
salesmanid: undefined, //销售经理 salesmanid: undefined, //销售经理
...@@ -408,7 +588,9 @@ export default { ...@@ -408,7 +588,9 @@ export default {
} }
return true; return true;
}, },
handleAdd() {}, handleAdd() {
alert(1);
},
handleExport() {}, handleExport() {},
/** 查询部门下拉树结构 + 岗位下拉 */ /** 查询部门下拉树结构 + 岗位下拉 */
getTreeselect() { getTreeselect() {
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
type="primary" type="primary"
plain plain
icon="el-icon-plus" icon="el-icon-plus"
v-show="true" v-show="false"
size="mini" size="mini"
@click="TestFun" @click="TestFun"
> >
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment