Commit e24d713acfc10fc1e038e73535ef440c74760077

Authored by gesilong
1 parent 0ef26fea

commit:接口联调

@@ -26,6 +26,22 @@ export function domesticCustomerCreditGetApi(id) { @@ -26,6 +26,22 @@ export function domesticCustomerCreditGetApi(id) {
26 }) 26 })
27 } 27 }
28 28
  29 +export function domesticCustomerCreditGetExamineByIdApi(id) {
  30 + return request({
  31 + url: '/procurement/domesticCustomerCredit/getExamineById',
  32 + method: 'get',
  33 + params: { id }
  34 + })
  35 +}
  36 +
  37 +export function domesticCustomerCreditCancelApi(id) {
  38 + return request({
  39 + url: '/procurement/domesticCustomerCredit/cancel',
  40 + method: 'get',
  41 + params: { id }
  42 + })
  43 +}
  44 +
29 export function getPurchaseDeptApi() { 45 export function getPurchaseDeptApi() {
30 return request({ 46 return request({
31 url: '/system/dept/getPurchaseDept', 47 url: '/system/dept/getPurchaseDept',
  1 +import request from '@/utils/request'
  2 +import { ContentTypeEnum } from '@/utils/httpEnum'
  3 +
  4 +export function foreignTradeCreditQueryApi(params) {
  5 + return request({
  6 + url: '/procurement/foreignTradeCredit/query',
  7 + method: 'get',
  8 + params
  9 + })
  10 +}
  11 +
  12 +export function foreignTradeCreditSaveApi(data) {
  13 + return request({
  14 + url: '/procurement/foreignTradeCredit',
  15 + method: 'post',
  16 + data,
  17 + contentType: ContentTypeEnum.JSON
  18 + })
  19 +}
  20 +
  21 +export function foreignTradeCreditGetApi(id) {
  22 + return request({
  23 + url: '/procurement/foreignTradeCredit/get',
  24 + method: 'get',
  25 + params: { id }
  26 + })
  27 +}
  28 +
  29 +export function foreignTradeCreditCancelApi(id) {
  30 + return request({
  31 + url: '/procurement/foreignTradeCredit/cancel',
  32 + method: 'get',
  33 + params: { id }
  34 + })
  35 +}
  36 +
  37 +export function foreignTradeCreditGetExamineByIdApi(id) {
  38 + return request({
  39 + url: '/procurement/foreignTradeCredit/getExamineById',
  40 + method: 'get',
  41 + params: { id }
  42 + })
  43 +}
  44 +
  45 +export function getPurchaseDeptApi() {
  46 + return request({
  47 + url: '/system/dept/getPurchaseDept',
  48 + method: 'get'
  49 + })
  50 +}
@@ -95,7 +95,7 @@ @@ -95,7 +95,7 @@
95 import { downloadFile } from '@/utils/downloadFile.js' 95 import { downloadFile } from '@/utils/downloadFile.js'
96 import DetailButtons from '@/components/detail-buttons/index.vue' 96 import DetailButtons from '@/components/detail-buttons/index.vue'
97 import { getDicByCodes, getDicName } from '@/utils/dic.js' 97 import { getDicByCodes, getDicName } from '@/utils/dic.js'
98 -import { domesticCustomerCreditGetApi } from '@/api/procure-manage/domesticCustomerCredit.js' 98 +import { domesticCustomerCreditCancelApi, domesticCustomerCreditGetApi } from '@/api/procure-manage/domesticCustomerCredit.js'
99 import { getPurchaseDeptApi } from '@/api/procure-manage/domesticCustomerCredit.js' 99 import { getPurchaseDeptApi } from '@/api/procure-manage/domesticCustomerCredit.js'
100 100
101 export default { 101 export default {
@@ -116,17 +116,36 @@ export default { @@ -116,17 +116,36 @@ export default {
116 }, 116 },
117 purchaseDeptOptions: [], 117 purchaseDeptOptions: [],
118 buttons: [{ 118 buttons: [{
  119 + text: '审核详情',
  120 + visible: true,
  121 + variant: 'outline',
  122 + event: 'auditDetail',
  123 + },{
  124 + text: '审核',
  125 + visible: true,
  126 + variant: 'primary',
  127 + event: 'audit',
  128 + },{
119 text: '编辑', 129 text: '编辑',
120 visible: true, 130 visible: true,
121 variant: 'outline', 131 variant: 'outline',
122 event: 'edit', 132 event: 'edit',
  133 + },{
  134 + text: '取消',
  135 + visible: true,
  136 + variant: 'outline',
  137 + event: 'cancel',
123 }] 138 }]
124 } 139 }
125 }, 140 },
126 computed: { 141 computed: {
127 displayButtons() { 142 displayButtons() {
  143 + const s = this.form && this.form.status || false
128 return [ 144 return [
129 - { ...this.buttons[0], visible: true }, 145 + { ...this.buttons[0], visible: s && this.$auth.hasPermi('procure-manage:domestic-trade:review') },
  146 + { ...this.buttons[1], visible: s === 'AUDIT' && this.$auth.hasPermi('procure-manage:domestic-trade:approve') },
  147 + { ...this.buttons[2], visible: this.$auth.hasPermi('procure-manage:domestic-trade:modify') },
  148 + { ...this.buttons[3], visible: this.$auth.hasPermi('procure-manage:domestic-trade:cancel') },
130 ] 149 ]
131 }, 150 },
132 companyNatureOptions() { 151 companyNatureOptions() {
@@ -212,13 +231,55 @@ export default { @@ -212,13 +231,55 @@ export default {
212 }, 231 },
213 handleButtonClick(btn) { 232 handleButtonClick(btn) {
214 if (!btn || btn.disabled) return 233 if (!btn || btn.disabled) return
215 - if (typeof btn.onClick === 'function') return btn.onClick(this.detail, btn.params) 234 + if (typeof btn.onClick === 'function') return btn.onClick(this.form, btn.params)
216 const e = btn.event || '' 235 const e = btn.event || ''
217 if (e === 'edit') return this.onEdit(btn && btn.params) 236 if (e === 'edit') return this.onEdit(btn && btn.params)
  237 + if (e === 'audit') return this.onAudit(btn && btn.params)
  238 + if (e === 'auditDetail') return this.onAuditDetail(btn && btn.params)
  239 + if (e === 'cancel') return this.onCancel(btn && btn.params)
218 }, 240 },
219 onEdit(params) { 241 onEdit(params) {
220 uni.navigateTo({ url: '/pages/domestic_trade/modify?id=' + this.id }) 242 uni.navigateTo({ url: '/pages/domestic_trade/modify?id=' + this.id })
221 }, 243 },
  244 + onAudit(params) {
  245 + const id = this.id || (this.form && this.form.id) || ''
  246 + if (!id) return
  247 + const CACHE_KEY = 'sourceBusinessId'
  248 + const TYPE = 'contractType'
  249 + uni.setStorageSync(TYPE, 'CUSTOMER_CREDIT_IN')
  250 + uni.setStorageSync(CACHE_KEY, id)
  251 + uni.navigateTo({ url: '/pages/flow/audit' })
  252 + },
  253 + onAuditDetail(params) {
  254 + const id = this.id || (this.form && this.form.id) || ''
  255 + if (!id) return
  256 + const CACHE_KEY = 'sourceBusinessId'
  257 + const TYPE = 'contractType'
  258 + uni.setStorageSync(TYPE, 'CUSTOMER_CREDIT_IN')
  259 + uni.setStorageSync(CACHE_KEY, id)
  260 + uni.navigateTo({ url: '/pages/flow/audit_detail' })
  261 + },
  262 + onCancel(params) {
  263 + const id = this.id || (this.form && this.form.id) || ''
  264 + if (!id) return
  265 + uni.showModal({
  266 + title: '系统提示',
  267 + content: '是否确定取消该流程?',
  268 + confirmText: '确定',
  269 + cancelText: '取消',
  270 + success: (res) => {
  271 + if (res && res.confirm) {
  272 + domesticCustomerCreditCancelApi(id).then(() => {
  273 + uni.showToast({ title: '已取消', icon: 'none' })
  274 + try { uni.setStorageSync('DOMESTIC_TRADE_LIST_NEED_REFRESH', '1') } catch (e) {}
  275 + setTimeout(() => { uni.redirectTo({ url: '/pages/domestic_trade/index' }) }, 300)
  276 + }).catch((e) => {
  277 + uni.showToast({ title: (e && e.msg) || '取消失败', icon: 'none' })
  278 + })
  279 + }
  280 + }
  281 + })
  282 + },
222 boolText(v) { 283 boolText(v) {
223 if (v === true) return '是' 284 if (v === true) return '是'
224 if (v === false) return '否' 285 if (v === false) return '否'
  1 +<template>
  2 + <view class="detail-page">
  3 + <scroll-view class="scroll" scroll-y>
  4 + <view class="section">
  5 + <text class="row company">{{ safeText(form.unitName) }}</text>
  6 + <view class="row"><text class="label">公司性质</text><text class="value">{{ safeText(companyNatureName) }}</text></view>
  7 + <view class="row"><text class="label">开户行</text><text class="value">{{ safeText(form.bankName) }}</text></view>
  8 + <view class="row"><text class="label">账号</text><text class="value">{{ safeText(form.bankAccount) }}</text></view>
  9 + <view class="row"><text class="label">注册资金(万元)</text><text class="value">{{ safeText(form.registeredCapital) }}</text></view>
  10 + <view class="row"><text class="label">法人代表</text><text class="value">{{ safeText(form.legalRepresentative) }}</text></view>
  11 + <view class="row"><text class="label">公司成立时间</text><text class="value">{{ safeText(form.companyEstablishedTime) }}</text></view>
  12 + <view class="row"><text class="label">地址</text><text class="value">{{ safeText(form.address) }}</text></view>
  13 + <view class="row"><text class="label">业务负责人</text><text class="value">{{ safeText(form.businessPrincipal) }}</text></view>
  14 + <view class="row"><text class="label">职务</text><text class="value">{{ safeText(form.businessPrincipalPosition) }}</text></view>
  15 + <view class="row"><text class="label">电话</text><text class="value">{{ safeText(form.businessPrincipalPhone) }}</text></view>
  16 + <view class="row"><text class="label">法人与业务负责人关系</text><text class="value">{{ safeText(form.legalBusinessRelation) }}</text></view>
  17 + </view>
  18 +
  19 + <view class="title-header">
  20 + <image class="title-header_icon" src="/static/images/title.png" />
  21 + <span>资产状况</span>
  22 + </view>
  23 + <view class="section">
  24 + <view class="row"><text class="label">生产厂房及办公楼产权</text><text class="value">{{ safeText(form.factoryOfficeProperty) }}</text></view>
  25 + <view class="row"><text class="label">生产厂房及办公楼面积</text><text class="value">{{ safeText(form.factoryOfficeArea) }}</text></view>
  26 + <view class="row"><text class="label">仓库或货场产权</text><text class="value">{{ safeText(form.warehouseYardProperty) }}</text></view>
  27 + <view class="row"><text class="label">仓库或货场产权面积</text><text class="value">{{ safeText(form.warehouseYardArea) }}</text></view>
  28 + <view class="row"><text class="label">主要生产设备</text><text class="value pre">{{ safeText(form.mainEquipment) }}</text></view>
  29 + <view class="row"><text class="label">正常库存量</text><text class="value">{{ safeText(form.normalInventory) }}</text></view>
  30 + </view>
  31 +
  32 + <view class="title-header">
  33 + <image class="title-header_icon" src="/static/images/title.png" />
  34 + <span>生产经营环节风险调查</span>
  35 + </view>
  36 + <view class="section">
  37 + <view class="row"><text class="label">主要品种</text><text class="value">{{ safeText(form.mainVarieties) }}</text></view>
  38 + <view class="row"><text class="label">月度收购量</text><text class="value">{{ safeText(form.monthlyPurchaseVolume) }}</text></view>
  39 + <view class="row"><text class="label">收购来源</text><text class="value">{{ safeText(purchaseSourceName) }}</text></view>
  40 + <view class="row"><text class="label">入库品名</text><text class="value">{{ safeText(form.stockInProductName) }}</text></view>
  41 + <view class="row"><text class="label">产品名称</text><text class="value">{{ safeText(form.productName) }}</text></view>
  42 + <view class="row"><text class="label">产能</text><text class="value">{{ safeText(form.capacity) }}</text></view>
  43 + <view class="row"><text class="label">销售渠道</text><text class="value">{{ safeText(form.salesChannel) }}</text></view>
  44 + <view class="row"><text class="label">操作方式</text><text class="value">{{ safeText(operationModeName) }}</text></view>
  45 + <view class="row"><text class="label">是否享有优惠政策</text><text class="value">{{ boolText(form.hasPreferentialPolicy) }}</text></view>
  46 + <view class="row"><text class="label">是否投资期货</text><text class="value">{{ boolText(form.investInFutures) }}</text></view>
  47 + <view class="row"><text class="label">是否有被处罚记录</text><text class="value">{{ boolText(form.hasPenaltyRecord) }}</text></view>
  48 + <view class="row"><text class="label">经营范围是否相符</text><text class="value">{{ boolText(form.businessScopeMatch) }}</text></view>
  49 + <view class="row"><text class="label">常见料质问题</text><text class="value pre">{{ safeText(form.commonMaterialIssue) }}</text></view>
  50 + <view class="row"><text class="label">合作中的其它问题</text><text class="value pre">{{ safeText(form.otherIssue) }}</text></view>
  51 + </view>
  52 +
  53 + <view class="title-header">
  54 + <image class="title-header_icon" src="/static/images/title.png" />
  55 + <span>与我司的合作状况</span>
  56 + </view>
  57 + <view class="section">
  58 + <view class="row"><text class="label">首次合作年份</text><text class="value">{{ safeText(form.firstCooperationYear) }}</text></view>
  59 + <view class="row"><text class="label">是否新开发</text><text class="value">{{ safeText(isNewDevelopmentName) }}</text></view>
  60 + <view class="row"><text class="label">计划落空不良记录</text><text class="value">{{ boolText(form.hasFailedPlanRecord) }}</text></view>
  61 + <view class="row"><text class="label">履行不到位现象</text><text class="value">{{ boolText(form.hasPlanPerformanceIssue) }}</text></view>
  62 + <view class="row"><text class="label">进销账务如何处理</text><text class="value pre">{{ safeText(form.accountingProcess) }}</text></view>
  63 + <view class="row"><text class="label">开票品名是否一致</text><text class="value">{{ boolText(form.invoiceNameMatch) }}</text></view>
  64 + <view class="row"><text class="label">出库流程是否规范</text><text class="value">{{ boolText(form.outboundProcessStandard) }}</text></view>
  65 + <view class="row"><text class="label">运输方式</text><text class="value">{{ safeText(form.transportMode) }}</text></view>
  66 + </view>
  67 +
  68 + <view class="title-header">
  69 + <image class="title-header_icon" src="/static/images/title.png" />
  70 + <span>其他</span>
  71 + </view>
  72 + <view class="section">
  73 + <view class="row"><text class="label">资信调查人</text><text class="value">{{ safeText(form.investigatorName) }}</text></view>
  74 + <view class="row"><text class="label">采购处</text><text class="value">{{ safeText(purchaseDepartmentName) }}</text></view>
  75 + <view class="row"><text class="label">评审有效期</text><text class="value">{{ safeText(form.reviewValidUntil) }}</text></view>
  76 + <view class="row">
  77 + <text class="label">附件</text>
  78 + <view class="value">
  79 + <view v-if="!attachments.length" class="value">-</view>
  80 + <view v-for="item in attachments" :key="item.id || item.name" class="file-item" @click="onDownload(item)">
  81 + <text class="value act">{{ item.name }}</text>
  82 + </view>
  83 + </view>
  84 + </view>
  85 + </view>
  86 + </scroll-view>
  87 + </view>
  88 +</template>
  89 +
  90 +<script>
  91 +import { downloadFile } from '@/utils/downloadFile.js'
  92 +import { getDicByCodes, getDicName } from '@/utils/dic.js'
  93 +import { domesticCustomerCreditGetExamineByIdApi, getPurchaseDeptApi } from '@/api/procure-manage/domesticCustomerCredit.js'
  94 +
  95 +export default {
  96 + name: 'DomesticCustomerCreditViewer',
  97 + props: { id: { type: [String, Number], default: '' } },
  98 + data() {
  99 + return {
  100 + form: {},
  101 + dicOptions: {
  102 + COMPANY_NATURE: [],
  103 + DEVELOP_NEW: [],
  104 + OPERATION_METHOD: [],
  105 + PURCHASE_SOURCE: []
  106 + },
  107 + purchaseDeptOptions: []
  108 + }
  109 + },
  110 + computed: {
  111 + attachments() {
  112 + const f = this.form || {}
  113 + const ids = f.attachmentFileIds != null ? String(f.attachmentFileIds) : ''
  114 + const names = f.attachmentFileNames != null ? String(f.attachmentFileNames) : ''
  115 + const idArr = ids ? ids.split(',').map(s => s.trim()).filter(Boolean) : []
  116 + const nameArr = names ? names.split(',') : []
  117 + if (idArr.length) {
  118 + return idArr.map((id, i) => ({ id, name: (nameArr[i] != null ? String(nameArr[i]) : '') }))
  119 + }
  120 + const legacy = Array.isArray(f.attachments) ? f.attachments : []
  121 + return legacy.filter(it => it && (it.id || it.name)).map(it => ({ id: it.id || '', name: it.name || '' }))
  122 + },
  123 + companyNatureOptions() {
  124 + return this.dicToSheetOptions(this.dicOptions.COMPANY_NATURE)
  125 + },
  126 + companyNatureName() {
  127 + return this.safeText(this.form.companyNatureName) || this.labelsOf(this.companyNatureOptions, this.form.companyNature)
  128 + },
  129 + purchaseSourceName() {
  130 + const v = this.form && this.form.purchaseSource != null ? String(this.form.purchaseSource) : ''
  131 + return v ? getDicName('PURCHASE_SOURCE', v, this.dicOptions.PURCHASE_SOURCE) : '-'
  132 + },
  133 + operationModeName() {
  134 + const v = this.form && this.form.operationMode != null ? String(this.form.operationMode) : ''
  135 + return v ? getDicName('OPERATION_METHOD', v, this.dicOptions.OPERATION_METHOD) : '-'
  136 + },
  137 + isNewDevelopmentName() {
  138 + const v = this.form && this.form.isNewDevelopment != null ? String(this.form.isNewDevelopment) : ''
  139 + return v ? getDicName('DEVELOP_NEW', v, this.dicOptions.DEVELOP_NEW) : '-'
  140 + },
  141 + purchaseDepartmentName() {
  142 + const v = this.form && this.form.purchaseDepartment != null ? String(this.form.purchaseDepartment) : ''
  143 + if (!v) return '-'
  144 + const found = (this.purchaseDeptOptions || []).find(o => String(o.value) === v)
  145 + return found ? String(found.label || '') : v
  146 + }
  147 + },
  148 + created() {
  149 + this.loadDicData()
  150 + this.loadPurchaseDeptOptions()
  151 + },
  152 + watch: {
  153 + id: {
  154 + immediate: true,
  155 + handler(val) {
  156 + const v = (val !== undefined && val !== null) ? String(val) : ''
  157 + if (v) this.loadDetail(v)
  158 + }
  159 + }
  160 + },
  161 + methods: {
  162 + async loadDicData() {
  163 + try {
  164 + const results = await getDicByCodes(['COMPANY_NATURE', 'DEVELOP_NEW', 'OPERATION_METHOD', 'PURCHASE_SOURCE'])
  165 + this.dicOptions = {
  166 + COMPANY_NATURE: (results.COMPANY_NATURE && results.COMPANY_NATURE.data) || [],
  167 + DEVELOP_NEW: (results.DEVELOP_NEW && results.DEVELOP_NEW.data) || [],
  168 + OPERATION_METHOD: (results.OPERATION_METHOD && results.OPERATION_METHOD.data) || [],
  169 + PURCHASE_SOURCE: (results.PURCHASE_SOURCE && results.PURCHASE_SOURCE.data) || []
  170 + }
  171 + } catch (e) {
  172 + this.dicOptions = { COMPANY_NATURE: [], DEVELOP_NEW: [], OPERATION_METHOD: [], PURCHASE_SOURCE: [] }
  173 + }
  174 + },
  175 + async loadPurchaseDeptOptions() {
  176 + try {
  177 + const res = await getPurchaseDeptApi()
  178 + const list = (res && res.data) ? res.data : []
  179 + this.purchaseDeptOptions = (Array.isArray(list) ? list : []).map(it => ({
  180 + label: it && it.name != null ? String(it.name) : '',
  181 + value: it && it.id != null ? String(it.id) : ''
  182 + })).filter(it => it.value)
  183 + } catch (e) {
  184 + this.purchaseDeptOptions = []
  185 + }
  186 + },
  187 + dicToSheetOptions(items) {
  188 + const list = Array.isArray(items) ? items : []
  189 + return list.map(it => ({ label: it && it.name != null ? String(it.name) : '', value: it && it.code != null ? String(it.code) : '' })).filter(it => it.value)
  190 + },
  191 + labelsOf(options, csv) {
  192 + const v = csv == null ? '' : String(csv)
  193 + if (!v) return '-'
  194 + const parts = v.split(',').filter(Boolean)
  195 + if (!parts.length) return '-'
  196 + const labels = []
  197 + ;(options || []).forEach(opt => {
  198 + const ov = opt && opt.value != null ? String(opt.value) : ''
  199 + if (ov && parts.includes(ov)) labels.push(opt.label != null ? String(opt.label) : '')
  200 + })
  201 + return labels.filter(Boolean).join(',') || '-'
  202 + },
  203 + boolText(v) {
  204 + if (v === true) return '是'
  205 + if (v === false) return '否'
  206 + return '-'
  207 + },
  208 + safeText(v) {
  209 + const s = v == null ? '' : String(v)
  210 + return s.trim() ? s : ''
  211 + },
  212 + async loadDetail(id) {
  213 + try {
  214 + const res = await domesticCustomerCreditGetExamineByIdApi(id)
  215 + this.form = (res && res.data) ? res.data : {}
  216 + } catch (e) {
  217 + this.form = {}
  218 + }
  219 + },
  220 + onDownload(item) {
  221 + if (!item || !item.id) return
  222 + downloadFile(item.id, item.name || 'download')
  223 + }
  224 + }
  225 +}
  226 +</script>
  227 +
  228 +<style lang="scss" scoped>
  229 +.detail-page {
  230 + background: #f3f3f3;
  231 +}
  232 +
  233 +.scroll {
  234 + flex: 1;
  235 + padding: 8rpx 0 144rpx;
  236 +}
  237 +
  238 +.title-header {
  239 + display: flex;
  240 + align-items: center;
  241 + padding: 24rpx 32rpx 12rpx;
  242 + background-color: #ffffff;
  243 +
  244 + .title-header_icon {
  245 + width: 36rpx;
  246 + height: 36rpx;
  247 + margin-right: 12rpx;
  248 + }
  249 +
  250 + span {
  251 + font-size: 34rpx;
  252 + font-weight: 600;
  253 + color: rgba(0, 0, 0, 0.9);
  254 + }
  255 +}
  256 +
  257 +.section {
  258 + padding: 32rpx;
  259 + background: #fff;
  260 + margin-bottom: 20rpx;
  261 +}
  262 +
  263 +.row {
  264 + display: flex;
  265 + margin-bottom: 28rpx;
  266 +
  267 + &:last-child {
  268 + margin-bottom: 0;
  269 + }
  270 +
  271 + &.company {
  272 + font-size: 36rpx;
  273 + font-weight: 600;
  274 + color: rgba(0, 0, 0, 0.9);
  275 + padding-top: 8rpx;
  276 + line-height: 50rpx;
  277 + }
  278 +
  279 + .label {
  280 + max-width: 420rpx;
  281 + margin-right: 20rpx;
  282 + line-height: 32rpx;
  283 + font-size: 28rpx;
  284 + color: rgba(0, 0, 0, 0.6);
  285 + }
  286 +
  287 + .value {
  288 + flex: 1;
  289 + line-height: 32rpx;
  290 + font-size: 28rpx;
  291 + color: rgba(0, 0, 0, 0.9);
  292 + text-align: right;
  293 + word-break: break-all;
  294 +
  295 + &.act {
  296 + color: $theme-primary;
  297 + }
  298 +
  299 + &.pre {
  300 + white-space: pre-wrap;
  301 + }
  302 + }
  303 +}
  304 +
  305 +.file-item {
  306 + margin-bottom: 12rpx;
  307 +
  308 + &:last-child {
  309 + margin-bottom: 0;
  310 + }
  311 +}
  312 +</style>
@@ -4,18 +4,6 @@ @@ -4,18 +4,6 @@
4 <uni-list> 4 <uni-list>
5 <view class="title-header"> 5 <view class="title-header">
6 <image class="title-header_icon" src="/static/images/title.png" /> 6 <image class="title-header_icon" src="/static/images/title.png" />
7 - <span>供应商</span>  
8 - </view>  
9 -  
10 - <uni-list-item class="select-item" :class="form.supplierName ? 'is-filled' : 'is-empty'" clickable  
11 - @click="openSheet('supplier')" :rightText="displayLabel('supplierName')" showArrow>  
12 - <template v-slot:body>  
13 - <view class="item-title"><text>供应商</text></view>  
14 - </template>  
15 - </uni-list-item>  
16 -  
17 - <view class="title-header">  
18 - <image class="title-header_icon" src="/static/images/title.png" />  
19 <span>基本资料</span> 7 <span>基本资料</span>
20 </view> 8 </view>
21 9
@@ -25,9 +13,10 @@ @@ -25,9 +13,10 @@
25 </template> 13 </template>
26 </uni-list-item> 14 </uni-list-item>
27 15
28 - <uni-list-item title="公司性质">  
29 - <template v-slot:footer>  
30 - <uni-easyinput v-model="form.companyNature" placeholder="请输入" :inputBorder="false" /> 16 + <uni-list-item class="select-item" :class="form.companyNature ? 'is-filled' : 'is-empty'" clickable
  17 + @click="openSheet('companyNature')" :rightText="displayLabel('companyNatureName')" showArrow>
  18 + <template v-slot:body>
  19 + <view class="item-title"><text>公司性质</text></view>
31 </template> 20 </template>
32 </uni-list-item> 21 </uni-list-item>
33 22
@@ -39,7 +28,7 @@ @@ -39,7 +28,7 @@
39 28
40 <uni-list-item title="电话及传真"> 29 <uni-list-item title="电话及传真">
41 <template v-slot:footer> 30 <template v-slot:footer>
42 - <uni-easyinput v-model="form.phoneFax" placeholder="请输入" :inputBorder="false" /> 31 + <uni-easyinput v-model="form.phoneAndFax" placeholder="请输入" :inputBorder="false" />
43 </template> 32 </template>
44 </uni-list-item> 33 </uni-list-item>
45 34
@@ -57,13 +46,13 @@ @@ -57,13 +46,13 @@
57 46
58 <uni-list-item title="国内业务负责人"> 47 <uni-list-item title="国内业务负责人">
59 <template v-slot:footer> 48 <template v-slot:footer>
60 - <uni-easyinput v-model="form.domesticBusinessLeader" placeholder="请输入" :inputBorder="false" /> 49 + <uni-easyinput v-model="form.domesticBusinessPrincipal" placeholder="请输入" :inputBorder="false" />
61 </template> 50 </template>
62 </uni-list-item> 51 </uni-list-item>
63 52
64 <uni-list-item title="负责人身份证/护照号"> 53 <uni-list-item title="负责人身份证/护照号">
65 <template v-slot:footer> 54 <template v-slot:footer>
66 - <uni-easyinput v-model="form.leaderIdPassportNo" placeholder="请输入" :inputBorder="false" /> 55 + <uni-easyinput v-model="form.principalCertificateNo" placeholder="请输入" :inputBorder="false" />
67 </template> 56 </template>
68 </uni-list-item> 57 </uni-list-item>
69 58
@@ -75,7 +64,7 @@ @@ -75,7 +64,7 @@
75 64
76 <uni-list-item title="经营品种、规模"> 65 <uni-list-item title="经营品种、规模">
77 <template v-slot:footer> 66 <template v-slot:footer>
78 - <uni-easyinput type="textarea" v-model="form.overallBusinessVarietyScale" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 67 + <uni-easyinput type="textarea" v-model="form.overallBusinessVarietiesScale" placeholder="请输入" :inputBorder="false" maxlength="2000" />
79 </template> 68 </template>
80 </uni-list-item> 69 </uni-list-item>
81 70
@@ -87,13 +76,13 @@ @@ -87,13 +76,13 @@
87 76
88 <uni-list-item title="出口规模、品种"> 77 <uni-list-item title="出口规模、品种">
89 <template v-slot:footer> 78 <template v-slot:footer>
90 - <uni-easyinput type="textarea" v-model="form.exportToDomesticScaleVariety" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 79 + <uni-easyinput type="textarea" v-model="form.exportToDomesticScaleVarieties" placeholder="请输入" :inputBorder="false" maxlength="2000" />
91 </template> 80 </template>
92 </uni-list-item> 81 </uni-list-item>
93 82
94 <uni-list-item title="与国内合作企业"> 83 <uni-list-item title="与国内合作企业">
95 <template v-slot:footer> 84 <template v-slot:footer>
96 - <uni-easyinput type="textarea" v-model="form.domesticCooperationCompanies" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 85 + <uni-easyinput type="textarea" v-model="form.cooperatingDomesticCompanies" placeholder="请输入" :inputBorder="false" maxlength="2000" />
97 </template> 86 </template>
98 </uni-list-item> 87 </uni-list-item>
99 88
@@ -111,13 +100,13 @@ @@ -111,13 +100,13 @@
111 100
112 <uni-list-item title="销售代表办公地考察"> 101 <uni-list-item title="销售代表办公地考察">
113 <template v-slot:footer> 102 <template v-slot:footer>
114 - <uni-easyinput type="textarea" v-model="form.domesticSalesRepOfficeInspection" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 103 + <uni-easyinput type="textarea" v-model="form.domesticSalesOfficeInspection" placeholder="请输入" :inputBorder="false" maxlength="2000" />
115 </template> 104 </template>
116 </uni-list-item> 105 </uni-list-item>
117 106
118 <uni-list-item title="有无担保函"> 107 <uni-list-item title="有无担保函">
119 <template v-slot:footer> 108 <template v-slot:footer>
120 - <uni-easyinput v-model="form.hasGuaranteeLetter" placeholder="请输入" :inputBorder="false" /> 109 + <uni-easyinput v-model="form.guaranteeLetter" placeholder="请输入" :inputBorder="false" />
121 </template> 110 </template>
122 </uni-list-item> 111 </uni-list-item>
123 112
@@ -135,25 +124,25 @@ @@ -135,25 +124,25 @@
135 124
136 <uni-list-item title="滞箱滞报费用"> 125 <uni-list-item title="滞箱滞报费用">
137 <template v-slot:footer> 126 <template v-slot:footer>
138 - <uni-easyinput v-model="form.demurrageFee" placeholder="请输入" :inputBorder="false" /> 127 + <uni-easyinput v-model="form.detentionDemurrageFee" placeholder="请输入" :inputBorder="false" />
139 </template> 128 </template>
140 </uni-list-item> 129 </uni-list-item>
141 130
142 <uni-list-item title="操作品种"> 131 <uni-list-item title="操作品种">
143 <template v-slot:footer> 132 <template v-slot:footer>
144 - <uni-easyinput v-model="form.operatingVariety" placeholder="请输入" :inputBorder="false" /> 133 + <uni-easyinput v-model="form.operationVariety" placeholder="请输入" :inputBorder="false" />
145 </template> 134 </template>
146 </uni-list-item> 135 </uni-list-item>
147 136
148 <uni-list-item title="操作规模"> 137 <uni-list-item title="操作规模">
149 <template v-slot:footer> 138 <template v-slot:footer>
150 - <uni-easyinput v-model="form.operatingScale" placeholder="请输入" :inputBorder="false" /> 139 + <uni-easyinput v-model="form.operationScale" placeholder="请输入" :inputBorder="false" />
151 </template> 140 </template>
152 </uni-list-item> 141 </uni-list-item>
153 142
154 <uni-list-item title="定价模式"> 143 <uni-list-item title="定价模式">
155 <template v-slot:footer> 144 <template v-slot:footer>
156 - <uni-easyinput v-model="form.pricingModel" placeholder="请输入" :inputBorder="false" /> 145 + <uni-easyinput v-model="form.pricingMode" placeholder="请输入" :inputBorder="false" />
157 </template> 146 </template>
158 </uni-list-item> 147 </uni-list-item>
159 148
@@ -165,7 +154,7 @@ @@ -165,7 +154,7 @@
165 154
166 <uni-list-item title="磅差约定"> 155 <uni-list-item title="磅差约定">
167 <template v-slot:footer> 156 <template v-slot:footer>
168 - <uni-easyinput v-model="form.weightDiffAgreement" placeholder="请输入" :inputBorder="false" /> 157 + <uni-easyinput v-model="form.weightDifferenceAgreement" placeholder="请输入" :inputBorder="false" />
169 </template> 158 </template>
170 </uni-list-item> 159 </uni-list-item>
171 160
@@ -194,31 +183,31 @@ @@ -194,31 +183,31 @@
194 183
195 <uni-list-item title="操作时间"> 184 <uni-list-item title="操作时间">
196 <template v-slot:footer> 185 <template v-slot:footer>
197 - <uni-easyinput v-model="form.operationTime" placeholder="请输入" :inputBorder="false" /> 186 + <uni-easyinput v-model="form.schemeOperationTime" placeholder="请输入" :inputBorder="false" />
198 </template> 187 </template>
199 </uni-list-item> 188 </uni-list-item>
200 189
201 <uni-list-item title="操作模式"> 190 <uni-list-item title="操作模式">
202 <template v-slot:footer> 191 <template v-slot:footer>
203 - <uni-easyinput v-model="form.operationMode" placeholder="请输入" :inputBorder="false" /> 192 + <uni-easyinput v-model="form.schemeOperationMode" placeholder="请输入" :inputBorder="false" />
204 </template> 193 </template>
205 </uni-list-item> 194 </uni-list-item>
206 195
207 <uni-list-item title="操作品种"> 196 <uni-list-item title="操作品种">
208 <template v-slot:footer> 197 <template v-slot:footer>
209 - <uni-easyinput v-model="form.operationVariety" placeholder="请输入" :inputBorder="false" /> 198 + <uni-easyinput v-model="form.schemeOperationVariety" placeholder="请输入" :inputBorder="false" />
210 </template> 199 </template>
211 </uni-list-item> 200 </uni-list-item>
212 201
213 <uni-list-item title="操作数量"> 202 <uni-list-item title="操作数量">
214 <template v-slot:footer> 203 <template v-slot:footer>
215 - <uni-easyinput v-model="form.operationQuantity" placeholder="请输入" :inputBorder="false" /> 204 + <uni-easyinput v-model="form.schemeOperationQuantity" placeholder="请输入" :inputBorder="false" />
216 </template> 205 </template>
217 </uni-list-item> 206 </uni-list-item>
218 207
219 <uni-list-item title="发货要求"> 208 <uni-list-item title="发货要求">
220 <template v-slot:footer> 209 <template v-slot:footer>
221 - <uni-easyinput type="textarea" v-model="form.deliveryRequirement" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 210 + <uni-easyinput type="textarea" v-model="form.shippingRequirement" placeholder="请输入" :inputBorder="false" maxlength="2000" />
222 </template> 211 </template>
223 </uni-list-item> 212 </uni-list-item>
224 213
@@ -234,11 +223,24 @@ @@ -234,11 +223,24 @@
234 </template> 223 </template>
235 </uni-list-item> 224 </uni-list-item>
236 225
237 - <uni-list-item class="mgb10" title="评审部门"> 226 + <uni-list-item title="评审部门">
238 <template v-slot:footer> 227 <template v-slot:footer>
239 <uni-easyinput v-model="form.reviewDepartment" placeholder="请输入" :inputBorder="false" /> 228 <uni-easyinput v-model="form.reviewDepartment" placeholder="请输入" :inputBorder="false" />
240 </template> 229 </template>
241 </uni-list-item> 230 </uni-list-item>
  231 +
  232 + <uni-list-item title="资信调查人">
  233 + <template v-slot:footer>
  234 + <uni-easyinput v-model="form.investigatorName" :inputBorder="false" disabled />
  235 + </template>
  236 + </uni-list-item>
  237 +
  238 + <uni-list-item class="select-item mgb10" :class="form.purchase_department ? 'is-filled' : 'is-empty'" clickable
  239 + @click="openSheet('purchase_department')" :rightText="displayLabel('purchase_departmentName')" showArrow>
  240 + <template v-slot:body>
  241 + <view class="item-title"><text>采购处</text></view>
  242 + </template>
  243 + </uni-list-item>
242 </uni-list> 244 </uni-list>
243 </scroll-view> 245 </scroll-view>
244 246
@@ -254,7 +256,7 @@ @@ -254,7 +256,7 @@
254 <script> 256 <script>
255 import SingleSelectSheet from '@/components/single-select/index.vue' 257 import SingleSelectSheet from '@/components/single-select/index.vue'
256 import { getDicByCodes } from '@/utils/dic.js' 258 import { getDicByCodes } from '@/utils/dic.js'
257 -import { foreignCustomerCreditSaveApi } from '@/api/procure-manage/foreignCustomerCredit.js' 259 +import { foreignTradeCreditSaveApi, getPurchaseDeptApi } from '@/api/procure-manage/foreignTradeCredit.js'
258 260
259 export default { 261 export default {
260 name: 'ForeignTradeAdd', 262 name: 'ForeignTradeAdd',
@@ -262,90 +264,113 @@ export default { @@ -262,90 +264,113 @@ export default {
262 data() { 264 data() {
263 return { 265 return {
264 submitting: false, 266 submitting: false,
265 - supplierOptions: [],  
266 supplierCategoryOptions: [ 267 supplierCategoryOptions: [
267 { label: 'A类供应商', value: 'A' }, 268 { label: 'A类供应商', value: 'A' },
268 { label: 'B类供应商', value: 'B' }, 269 { label: 'B类供应商', value: 'B' },
269 { label: 'C类供应商', value: 'C' }, 270 { label: 'C类供应商', value: 'C' },
270 { label: 'D类供应商', value: 'D' } 271 { label: 'D类供应商', value: 'D' }
271 ], 272 ],
  273 + companyNatureOptions: [],
  274 + purchaseDeptOptions: [],
272 sheet: { visible: false, title: '', options: [], field: '', value: '' }, 275 sheet: { visible: false, title: '', options: [], field: '', value: '' },
273 form: { 276 form: {
274 - supplier: '',  
275 - supplierName: '', 277 + id: '',
276 unitName: '', 278 unitName: '',
277 companyNature: '', 279 companyNature: '',
  280 + companyNatureName: '',
278 legalRepresentative: '', 281 legalRepresentative: '',
279 - phoneFax: '', 282 + phoneAndFax: '',
280 registrationCertificateNo: '', 283 registrationCertificateNo: '',
281 address: '', 284 address: '',
282 - domesticBusinessLeader: '',  
283 - leaderIdPassportNo: '', 285 + domesticBusinessPrincipal: '',
  286 + principalCertificateNo: '',
284 establishedTimeAndYardScale: '', 287 establishedTimeAndYardScale: '',
285 - overallBusinessVarietyScale: '', 288 + overallBusinessVarietiesScale: '',
286 exportToDomesticTime: '', 289 exportToDomesticTime: '',
287 - exportToDomesticScaleVariety: '',  
288 - domesticCooperationCompanies: '', 290 + exportToDomesticScaleVarieties: '',
  291 + cooperatingDomesticCompanies: '',
289 cooperationEffect: '', 292 cooperationEffect: '',
290 supplierInspection: '', 293 supplierInspection: '',
291 - domesticSalesRepOfficeInspection: '',  
292 - hasGuaranteeLetter: '', 294 + domesticSalesOfficeInspection: '',
  295 + guaranteeLetter: '',
293 contractDispute: '', 296 contractDispute: '',
294 insuranceTransportMode: '', 297 insuranceTransportMode: '',
295 - demurrageFee: '',  
296 - operatingVariety: '',  
297 - operatingScale: '',  
298 - pricingModel: '', 298 + detentionDemurrageFee: '',
  299 + operationVariety: '',
  300 + operationScale: '',
  301 + pricingMode: '',
299 settlementMethod: '', 302 settlementMethod: '',
300 - weightDiffAgreement: '', 303 + weightDifferenceAgreement: '',
301 qualityStandard: '', 304 qualityStandard: '',
302 supplierCategory: '', 305 supplierCategory: '',
303 - operationTime: '',  
304 - operationMode: '',  
305 - operationVariety: '',  
306 - operationQuantity: '',  
307 - deliveryRequirement: '', 306 + schemeOperationTime: '',
  307 + schemeOperationMode: '',
  308 + schemeOperationVariety: '',
  309 + schemeOperationQuantity: '',
  310 + shippingRequirement: '',
308 paymentMethod: '', 311 paymentMethod: '',
309 nextReviewTime: '', 312 nextReviewTime: '',
310 - reviewDepartment: '' 313 + reviewDepartment: '',
  314 + investigatorId: '',
  315 + investigatorName: '',
  316 + purchase_department: '',
  317 + purchase_departmentName: ''
311 } 318 }
312 } 319 }
313 }, 320 },
314 created() { 321 created() {
315 - this.loadSupplierOptions() 322 + this.loadDicData()
  323 + this.loadPurchaseDeptOptions()
  324 + const u = (this.$store && this.$store.state && this.$store.state.user) ? this.$store.state.user : {}
  325 + this.form.investigatorId = u && u.id ? String(u.id) : ''
  326 + this.form.investigatorName = u && u.name ? String(u.name) : ''
316 }, 327 },
317 methods: { 328 methods: {
318 - async loadSupplierOptions() { 329 + async loadDicData() {
319 try { 330 try {
320 - const results = await getDicByCodes(['SUPPLIER'])  
321 - const items = results && results.SUPPLIER && results.SUPPLIER.data ? results.SUPPLIER.data : []  
322 - this.supplierOptions = (Array.isArray(items) ? items : []).map(it => ({ 331 + const results = await getDicByCodes(['COMPANY_NATURE'])
  332 + const items = results && results.COMPANY_NATURE && results.COMPANY_NATURE.data ? results.COMPANY_NATURE.data : []
  333 + this.companyNatureOptions = (Array.isArray(items) ? items : []).map(it => ({
323 label: it && it.name != null ? String(it.name) : '', 334 label: it && it.name != null ? String(it.name) : '',
324 value: it && it.code != null ? String(it.code) : '' 335 value: it && it.code != null ? String(it.code) : ''
325 })).filter(it => it.value) 336 })).filter(it => it.value)
326 } catch (e) { 337 } catch (e) {
327 - this.supplierOptions = [] 338 + this.companyNatureOptions = []
  339 + }
  340 + },
  341 + async loadPurchaseDeptOptions() {
  342 + try {
  343 + const res = await getPurchaseDeptApi()
  344 + const list = (res && res.data) ? res.data : []
  345 + this.purchaseDeptOptions = (Array.isArray(list) ? list : []).map(it => ({
  346 + label: it && it.name != null ? String(it.name) : '',
  347 + value: it && it.id != null ? String(it.id) : ''
  348 + })).filter(it => it.value)
  349 + } catch (e) {
  350 + this.purchaseDeptOptions = []
328 } 351 }
329 }, 352 },
330 displayLabel(field) { 353 displayLabel(field) {
331 const m = this.form || {} 354 const m = this.form || {}
332 const map = { 355 const map = {
333 - supplierName: '请选择', 356 + companyNatureName: '请选择',
  357 + purchase_departmentName: '请选择',
334 supplierCategory: '请选择' 358 supplierCategory: '请选择'
335 } 359 }
336 - const v = m[field]  
337 - if (v != null && String(v).trim()) return String(v)  
338 if (field === 'supplierCategory') { 360 if (field === 'supplierCategory') {
339 const code = m.supplierCategory 361 const code = m.supplierCategory
340 const found = (this.supplierCategoryOptions || []).find(o => String(o.value) === String(code)) 362 const found = (this.supplierCategoryOptions || []).find(o => String(o.value) === String(code))
341 return found ? String(found.label || '') : map[field] 363 return found ? String(found.label || '') : map[field]
342 } 364 }
  365 + const v = m[field]
  366 + if (v != null && String(v).trim()) return String(v)
343 return map[field] || '请选择' 367 return map[field] || '请选择'
344 }, 368 },
345 openSheet(field) { 369 openSheet(field) {
346 const map = { 370 const map = {
347 - supplier: { title: '选择供应商', options: this.supplierOptions, valueField: 'supplier', labelField: 'supplierName' },  
348 - supplierCategory: { title: '供应商分类', options: this.supplierCategoryOptions, valueField: 'supplierCategory', labelField: '' } 371 + companyNature: { title: '公司性质', options: this.companyNatureOptions, valueField: 'companyNature', labelField: 'companyNatureName' },
  372 + supplierCategory: { title: '供应商分类', options: this.supplierCategoryOptions, valueField: 'supplierCategory', labelField: '' },
  373 + purchase_department: { title: '采购处', options: this.purchaseDeptOptions, valueField: 'purchase_department', labelField: 'purchase_departmentName' }
349 } 374 }
350 const cfg = map[field] 375 const cfg = map[field]
351 if (!cfg) return 376 if (!cfg) return
@@ -362,53 +387,54 @@ export default { @@ -362,53 +387,54 @@ export default {
362 }, 387 },
363 onSheetConfirm({ value, label }) { 388 onSheetConfirm({ value, label }) {
364 const field = this.sheet.field 389 const field = this.sheet.field
365 - if (field === 'supplier') {  
366 - this.form.supplier = value  
367 - this.form.supplierName = label  
368 - } 390 + if (field === 'companyNature') this.form.companyNatureName = label
369 if (field === 'supplierCategory') { 391 if (field === 'supplierCategory') {
370 this.form.supplierCategory = value 392 this.form.supplierCategory = value
371 } 393 }
  394 + if (field === 'purchase_department') this.form.purchase_departmentName = label
  395 + if (field === 'companyNature') this.form.companyNature = value
  396 + if (field === 'purchase_department') this.form.purchase_department = value
372 this.sheet.visible = false 397 this.sheet.visible = false
373 }, 398 },
374 validate() { 399 validate() {
375 const requiredFields = [ 400 const requiredFields = [
376 - { key: 'supplier', label: '供应商' },  
377 { key: 'unitName', label: '单位名称' }, 401 { key: 'unitName', label: '单位名称' },
378 { key: 'companyNature', label: '公司性质' }, 402 { key: 'companyNature', label: '公司性质' },
379 { key: 'legalRepresentative', label: '法人代表' }, 403 { key: 'legalRepresentative', label: '法人代表' },
380 - { key: 'phoneFax', label: '电话及传真' }, 404 + { key: 'phoneAndFax', label: '电话及传真' },
381 { key: 'registrationCertificateNo', label: '注册证书号' }, 405 { key: 'registrationCertificateNo', label: '注册证书号' },
382 { key: 'address', label: '地址' }, 406 { key: 'address', label: '地址' },
383 - { key: 'domesticBusinessLeader', label: '国内业务负责人' },  
384 - { key: 'leaderIdPassportNo', label: '负责人身份证/护照号' }, 407 + { key: 'domesticBusinessPrincipal', label: '国内业务负责人' },
  408 + { key: 'principalCertificateNo', label: '负责人身份证/护照号' },
385 { key: 'establishedTimeAndYardScale', label: '成立时间及货场规模' }, 409 { key: 'establishedTimeAndYardScale', label: '成立时间及货场规模' },
386 - { key: 'overallBusinessVarietyScale', label: '经营品种、规模' }, 410 + { key: 'overallBusinessVarietiesScale', label: '经营品种、规模' },
387 { key: 'exportToDomesticTime', label: '出口到国内时间' }, 411 { key: 'exportToDomesticTime', label: '出口到国内时间' },
388 - { key: 'exportToDomesticScaleVariety', label: '出口规模、品种' },  
389 - { key: 'domesticCooperationCompanies', label: '与国内合作企业' }, 412 + { key: 'exportToDomesticScaleVarieties', label: '出口规模、品种' },
  413 + { key: 'cooperatingDomesticCompanies', label: '与国内合作企业' },
390 { key: 'cooperationEffect', label: '合作效果' }, 414 { key: 'cooperationEffect', label: '合作效果' },
391 { key: 'supplierInspection', label: '供应商考察' }, 415 { key: 'supplierInspection', label: '供应商考察' },
392 - { key: 'domesticSalesRepOfficeInspection', label: '销售代表办公地考察' },  
393 - { key: 'hasGuaranteeLetter', label: '有无担保函' }, 416 + { key: 'domesticSalesOfficeInspection', label: '销售代表办公地考察' },
  417 + { key: 'guaranteeLetter', label: '有无担保函' },
394 { key: 'contractDispute', label: '合同纠纷' }, 418 { key: 'contractDispute', label: '合同纠纷' },
395 { key: 'insuranceTransportMode', label: '保险、运输方式' }, 419 { key: 'insuranceTransportMode', label: '保险、运输方式' },
396 - { key: 'demurrageFee', label: '滞箱滞报费用' },  
397 - { key: 'operatingVariety', label: '操作品种' },  
398 - { key: 'operatingScale', label: '操作规模' },  
399 - { key: 'pricingModel', label: '定价模式' }, 420 + { key: 'detentionDemurrageFee', label: '滞箱滞报费用' },
  421 + { key: 'operationVariety', label: '操作品种' },
  422 + { key: 'operationScale', label: '操作规模' },
  423 + { key: 'pricingMode', label: '定价模式' },
400 { key: 'settlementMethod', label: '结算方式' }, 424 { key: 'settlementMethod', label: '结算方式' },
401 - { key: 'weightDiffAgreement', label: '磅差约定' }, 425 + { key: 'weightDifferenceAgreement', label: '磅差约定' },
402 { key: 'qualityStandard', label: '质量标准' }, 426 { key: 'qualityStandard', label: '质量标准' },
403 { key: 'supplierCategory', label: '供应商分类' }, 427 { key: 'supplierCategory', label: '供应商分类' },
404 - { key: 'operationTime', label: '操作时间' },  
405 - { key: 'operationMode', label: '操作模式' },  
406 - { key: 'operationVariety', label: '操作品种' },  
407 - { key: 'operationQuantity', label: '操作数量' },  
408 - { key: 'deliveryRequirement', label: '发货要求' }, 428 + { key: 'schemeOperationTime', label: '操作时间' },
  429 + { key: 'schemeOperationMode', label: '操作模式' },
  430 + { key: 'schemeOperationVariety', label: '操作品种' },
  431 + { key: 'schemeOperationQuantity', label: '操作数量' },
  432 + { key: 'shippingRequirement', label: '发货要求' },
409 { key: 'paymentMethod', label: '付款方式' }, 433 { key: 'paymentMethod', label: '付款方式' },
410 { key: 'nextReviewTime', label: '下次评审时间' }, 434 { key: 'nextReviewTime', label: '下次评审时间' },
411 - { key: 'reviewDepartment', label: '评审部门' } 435 + { key: 'reviewDepartment', label: '评审部门' },
  436 + { key: 'investigatorId', label: '资信调查人ID' },
  437 + { key: 'purchase_department', label: '采购处' }
412 ] 438 ]
413 for (let i = 0; i < requiredFields.length; i++) { 439 for (let i = 0; i < requiredFields.length; i++) {
414 const f = requiredFields[i] 440 const f = requiredFields[i]
@@ -429,7 +455,7 @@ export default { @@ -429,7 +455,7 @@ export default {
429 this.submitting = true 455 this.submitting = true
430 const payload = this.buildPayload() 456 const payload = this.buildPayload()
431 try { 457 try {
432 - await foreignCustomerCreditSaveApi(payload) 458 + await foreignTradeCreditSaveApi(payload)
433 uni.showToast({ title: '提交成功', icon: 'success' }) 459 uni.showToast({ title: '提交成功', icon: 'success' })
434 try { uni.setStorageSync('FOREIGN_TRADE_LIST_NEED_REFRESH', '1') } catch (e) {} 460 try { uni.setStorageSync('FOREIGN_TRADE_LIST_NEED_REFRESH', '1') } catch (e) {}
435 setTimeout(() => { uni.navigateBack() }, 300) 461 setTimeout(() => { uni.navigateBack() }, 300)
@@ -4,31 +4,30 @@ @@ -4,31 +4,30 @@
4 <view class="detail-page"> 4 <view class="detail-page">
5 <view class="section"> 5 <view class="section">
6 <text class="row company">{{ safeText(form.unitName) }}</text> 6 <text class="row company">{{ safeText(form.unitName) }}</text>
7 - <view class="row"><text class="label">供应商</text><text class="value">{{ safeText(form.supplierName) }}</text></view>  
8 - <view class="row"><text class="label">公司性质</text><text class="value">{{ safeText(form.companyNature) }}</text></view> 7 + <view class="row"><text class="label">公司性质</text><text class="value">{{ safeText(companyNatureText) }}</text></view>
9 <view class="row"><text class="label">法人代表</text><text class="value">{{ safeText(form.legalRepresentative) }}</text></view> 8 <view class="row"><text class="label">法人代表</text><text class="value">{{ safeText(form.legalRepresentative) }}</text></view>
10 - <view class="row"><text class="label">电话及传真</text><text class="value">{{ safeText(form.phoneFax) }}</text></view> 9 + <view class="row"><text class="label">电话及传真</text><text class="value">{{ safeText(form.phoneAndFax) }}</text></view>
11 <view class="row"><text class="label">注册证书号</text><text class="value">{{ safeText(form.registrationCertificateNo) }}</text></view> 10 <view class="row"><text class="label">注册证书号</text><text class="value">{{ safeText(form.registrationCertificateNo) }}</text></view>
12 <view class="row"><text class="label">地址</text><text class="value">{{ safeText(form.address) }}</text></view> 11 <view class="row"><text class="label">地址</text><text class="value">{{ safeText(form.address) }}</text></view>
13 - <view class="row"><text class="label">国内业务负责人</text><text class="value">{{ safeText(form.domesticBusinessLeader) }}</text></view>  
14 - <view class="row"><text class="label">负责人身份证/护照号</text><text class="value">{{ safeText(form.leaderIdPassportNo) }}</text></view> 12 + <view class="row"><text class="label">国内业务负责人</text><text class="value">{{ safeText(form.domesticBusinessPrincipal) }}</text></view>
  13 + <view class="row"><text class="label">负责人身份证/护照号</text><text class="value">{{ safeText(form.principalCertificateNo) }}</text></view>
15 <view class="row"><text class="label">成立时间及货场规模</text><text class="value pre">{{ safeText(form.establishedTimeAndYardScale) }}</text></view> 14 <view class="row"><text class="label">成立时间及货场规模</text><text class="value pre">{{ safeText(form.establishedTimeAndYardScale) }}</text></view>
16 - <view class="row"><text class="label">经营品种、规模</text><text class="value pre">{{ safeText(form.overallBusinessVarietyScale) }}</text></view> 15 + <view class="row"><text class="label">经营品种、规模</text><text class="value pre">{{ safeText(form.overallBusinessVarietiesScale) }}</text></view>
17 <view class="row"><text class="label">出口到国内时间</text><text class="value">{{ safeText(form.exportToDomesticTime) }}</text></view> 16 <view class="row"><text class="label">出口到国内时间</text><text class="value">{{ safeText(form.exportToDomesticTime) }}</text></view>
18 - <view class="row"><text class="label">出口规模、品种</text><text class="value pre">{{ safeText(form.exportToDomesticScaleVariety) }}</text></view>  
19 - <view class="row"><text class="label">与国内合作企业</text><text class="value pre">{{ safeText(form.domesticCooperationCompanies) }}</text></view> 17 + <view class="row"><text class="label">出口规模、品种</text><text class="value pre">{{ safeText(form.exportToDomesticScaleVarieties) }}</text></view>
  18 + <view class="row"><text class="label">与国内合作企业</text><text class="value pre">{{ safeText(form.cooperatingDomesticCompanies) }}</text></view>
20 <view class="row"><text class="label">合作效果</text><text class="value pre">{{ safeText(form.cooperationEffect) }}</text></view> 19 <view class="row"><text class="label">合作效果</text><text class="value pre">{{ safeText(form.cooperationEffect) }}</text></view>
21 <view class="row"><text class="label">供应商考察</text><text class="value pre">{{ safeText(form.supplierInspection) }}</text></view> 20 <view class="row"><text class="label">供应商考察</text><text class="value pre">{{ safeText(form.supplierInspection) }}</text></view>
22 - <view class="row"><text class="label">销售代表办公地考察</text><text class="value pre">{{ safeText(form.domesticSalesRepOfficeInspection) }}</text></view>  
23 - <view class="row"><text class="label">有无担保函</text><text class="value">{{ safeText(form.hasGuaranteeLetter) }}</text></view> 21 + <view class="row"><text class="label">销售代表办公地考察</text><text class="value pre">{{ safeText(form.domesticSalesOfficeInspection) }}</text></view>
  22 + <view class="row"><text class="label">有无担保函</text><text class="value">{{ safeText(form.guaranteeLetter) }}</text></view>
24 <view class="row"><text class="label">合同纠纷</text><text class="value pre">{{ safeText(form.contractDispute) }}</text></view> 23 <view class="row"><text class="label">合同纠纷</text><text class="value pre">{{ safeText(form.contractDispute) }}</text></view>
25 <view class="row"><text class="label">保险、运输方式</text><text class="value">{{ safeText(form.insuranceTransportMode) }}</text></view> 24 <view class="row"><text class="label">保险、运输方式</text><text class="value">{{ safeText(form.insuranceTransportMode) }}</text></view>
26 - <view class="row"><text class="label">滞箱滞报费用</text><text class="value">{{ safeText(form.demurrageFee) }}</text></view>  
27 - <view class="row"><text class="label">操作品种</text><text class="value">{{ safeText(form.operatingVariety) }}</text></view>  
28 - <view class="row"><text class="label">操作规模</text><text class="value">{{ safeText(form.operatingScale) }}</text></view>  
29 - <view class="row"><text class="label">定价模式</text><text class="value">{{ safeText(form.pricingModel) }}</text></view> 25 + <view class="row"><text class="label">滞箱滞报费用</text><text class="value">{{ safeText(form.detentionDemurrageFee) }}</text></view>
  26 + <view class="row"><text class="label">操作品种</text><text class="value">{{ safeText(form.operationVariety) }}</text></view>
  27 + <view class="row"><text class="label">操作规模</text><text class="value">{{ safeText(form.operationScale) }}</text></view>
  28 + <view class="row"><text class="label">定价模式</text><text class="value">{{ safeText(form.pricingMode) }}</text></view>
30 <view class="row"><text class="label">结算方式</text><text class="value">{{ safeText(form.settlementMethod) }}</text></view> 29 <view class="row"><text class="label">结算方式</text><text class="value">{{ safeText(form.settlementMethod) }}</text></view>
31 - <view class="row"><text class="label">磅差约定</text><text class="value">{{ safeText(form.weightDiffAgreement) }}</text></view> 30 + <view class="row"><text class="label">磅差约定</text><text class="value">{{ safeText(form.weightDifferenceAgreement) }}</text></view>
32 <view class="row"><text class="label">质量标准</text><text class="value">{{ safeText(form.qualityStandard) }}</text></view> 31 <view class="row"><text class="label">质量标准</text><text class="value">{{ safeText(form.qualityStandard) }}</text></view>
33 </view> 32 </view>
34 33
@@ -46,14 +45,16 @@ @@ -46,14 +45,16 @@
46 <span>操作方案</span> 45 <span>操作方案</span>
47 </view> 46 </view>
48 <view class="section"> 47 <view class="section">
49 - <view class="row"><text class="label">操作时间</text><text class="value">{{ safeText(form.operationTime) }}</text></view>  
50 - <view class="row"><text class="label">操作模式</text><text class="value">{{ safeText(form.operationMode) }}</text></view>  
51 - <view class="row"><text class="label">操作品种</text><text class="value">{{ safeText(form.operationVariety) }}</text></view>  
52 - <view class="row"><text class="label">操作数量</text><text class="value">{{ safeText(form.operationQuantity) }}</text></view>  
53 - <view class="row"><text class="label">发货要求</text><text class="value pre">{{ safeText(form.deliveryRequirement) }}</text></view> 48 + <view class="row"><text class="label">操作时间</text><text class="value">{{ safeText(form.schemeOperationTime) }}</text></view>
  49 + <view class="row"><text class="label">操作模式</text><text class="value">{{ safeText(form.schemeOperationMode) }}</text></view>
  50 + <view class="row"><text class="label">操作品种</text><text class="value">{{ safeText(form.schemeOperationVariety) }}</text></view>
  51 + <view class="row"><text class="label">操作数量</text><text class="value">{{ safeText(form.schemeOperationQuantity) }}</text></view>
  52 + <view class="row"><text class="label">发货要求</text><text class="value pre">{{ safeText(form.shippingRequirement) }}</text></view>
54 <view class="row"><text class="label">付款方式</text><text class="value">{{ safeText(form.paymentMethod) }}</text></view> 53 <view class="row"><text class="label">付款方式</text><text class="value">{{ safeText(form.paymentMethod) }}</text></view>
55 <view class="row"><text class="label">下次评审时间</text><text class="value">{{ safeText(form.nextReviewTime) }}</text></view> 54 <view class="row"><text class="label">下次评审时间</text><text class="value">{{ safeText(form.nextReviewTime) }}</text></view>
56 <view class="row"><text class="label">评审部门</text><text class="value">{{ safeText(form.reviewDepartment) }}</text></view> 55 <view class="row"><text class="label">评审部门</text><text class="value">{{ safeText(form.reviewDepartment) }}</text></view>
  56 + <view class="row"><text class="label">资信调查人</text><text class="value">{{ safeText(form.investigatorName) }}</text></view>
  57 + <view class="row"><text class="label">采购处</text><text class="value">{{ safeText(purchaseDeptName) }}</text></view>
57 <view v-if="reviewHint" class="hint">{{ reviewHint }}</view> 58 <view v-if="reviewHint" class="hint">{{ reviewHint }}</view>
58 </view> 59 </view>
59 60
@@ -70,7 +71,7 @@ @@ -70,7 +71,7 @@
70 <script> 71 <script>
71 import DetailButtons from '@/components/detail-buttons/index.vue' 72 import DetailButtons from '@/components/detail-buttons/index.vue'
72 import { getDicByCodes, getDicName } from '@/utils/dic.js' 73 import { getDicByCodes, getDicName } from '@/utils/dic.js'
73 -import { foreignCustomerCreditGetApi } from '@/api/procure-manage/foreignCustomerCredit.js' 74 +import { foreignTradeCreditCancelApi, foreignTradeCreditGetApi, getPurchaseDeptApi } from '@/api/procure-manage/foreignTradeCredit.js'
74 75
75 export default { 76 export default {
76 name: 'ForeignTradeDetail', 77 name: 'ForeignTradeDetail',
@@ -81,25 +82,59 @@ export default { @@ -81,25 +82,59 @@ export default {
81 loading: false, 82 loading: false,
82 form: {}, 83 form: {},
83 dicOptions: { 84 dicOptions: {
84 - AUDIT_STATUS: [] 85 + AUDIT_STATUS: [],
  86 + COMPANY_NATURE: []
85 }, 87 },
  88 + purchaseDeptOptions: [],
86 buttons: [{ 89 buttons: [{
  90 + text: '审核详情',
  91 + visible: true,
  92 + variant: 'outline',
  93 + event: 'auditDetail',
  94 + },{
  95 + text: '审核',
  96 + visible: true,
  97 + variant: 'primary',
  98 + event: 'audit',
  99 + },{
87 text: '编辑', 100 text: '编辑',
88 visible: true, 101 visible: true,
89 variant: 'outline', 102 variant: 'outline',
90 event: 'edit', 103 event: 'edit',
  104 + },{
  105 + text: '取消',
  106 + visible: true,
  107 + variant: 'outline',
  108 + event: 'cancel',
91 }] 109 }]
92 } 110 }
93 }, 111 },
94 computed: { 112 computed: {
95 displayButtons() { 113 displayButtons() {
96 - return [{ ...this.buttons[0], visible: true }] 114 + const s = this.form && this.form.status || false
  115 + return [
  116 + { ...this.buttons[0], visible: s && this.$auth.hasPermi('procure-manage:foreign-trade:review') },
  117 + { ...this.buttons[1], visible: s === 'AUDIT' && this.$auth.hasPermi('procure-manage:foreign-trade:approve') },
  118 + { ...this.buttons[2], visible: this.$auth.hasPermi('procure-manage:foreign-trade:modify') },
  119 + { ...this.buttons[3], visible: this.$auth.hasPermi('procure-manage:foreign-trade:cancel') },
  120 + ]
  121 + },
  122 + companyNatureText() {
  123 + const v = this.form && this.form.companyNature != null ? String(this.form.companyNature) : ''
  124 + if (!v) return '-'
  125 + return getDicName('COMPANY_NATURE', v, this.dicOptions.COMPANY_NATURE) || v
97 }, 126 },
98 auditStatusText() { 127 auditStatusText() {
99 const v = this.form && this.form.status != null ? String(this.form.status) : '' 128 const v = this.form && this.form.status != null ? String(this.form.status) : ''
100 if (!v) return '-' 129 if (!v) return '-'
101 return getDicName('AUDIT_STATUS', v, this.dicOptions.AUDIT_STATUS) || v 130 return getDicName('AUDIT_STATUS', v, this.dicOptions.AUDIT_STATUS) || v
102 }, 131 },
  132 + purchaseDeptName() {
  133 + const v = this.form && this.form.purchase_department != null ? String(this.form.purchase_department) : ''
  134 + if (!v) return '-'
  135 + const found = (this.purchaseDeptOptions || []).find(o => String(o.value) === v)
  136 + return found ? String(found.label || '') : v
  137 + },
103 supplierCategoryName() { 138 supplierCategoryName() {
104 const v = this.form && this.form.supplierCategory != null ? String(this.form.supplierCategory) : '' 139 const v = this.form && this.form.supplierCategory != null ? String(this.form.supplierCategory) : ''
105 const map = { A: 'A类供应商', B: 'B类供应商', C: 'C类供应商', D: 'D类供应商' } 140 const map = { A: 'A类供应商', B: 'B类供应商', C: 'C类供应商', D: 'D类供应商' }
@@ -128,6 +163,7 @@ export default { @@ -128,6 +163,7 @@ export default {
128 }, 163 },
129 created() { 164 created() {
130 this.loadDicData() 165 this.loadDicData()
  166 + this.loadPurchaseDeptOptions()
131 }, 167 },
132 onShow() { 168 onShow() {
133 const options = (this.$route && this.$route.query) ? this.$route.query : {} 169 const options = (this.$route && this.$route.query) ? this.$route.query : {}
@@ -138,21 +174,77 @@ export default { @@ -138,21 +174,77 @@ export default {
138 methods: { 174 methods: {
139 async loadDicData() { 175 async loadDicData() {
140 try { 176 try {
141 - const results = await getDicByCodes(['AUDIT_STATUS']) 177 + const results = await getDicByCodes(['AUDIT_STATUS', 'COMPANY_NATURE'])
142 this.dicOptions.AUDIT_STATUS = (results.AUDIT_STATUS && results.AUDIT_STATUS.data) || [] 178 this.dicOptions.AUDIT_STATUS = (results.AUDIT_STATUS && results.AUDIT_STATUS.data) || []
  179 + this.dicOptions.COMPANY_NATURE = (results.COMPANY_NATURE && results.COMPANY_NATURE.data) || []
143 } catch (e) { 180 } catch (e) {
144 this.dicOptions.AUDIT_STATUS = [] 181 this.dicOptions.AUDIT_STATUS = []
  182 + this.dicOptions.COMPANY_NATURE = []
  183 + }
  184 + },
  185 + async loadPurchaseDeptOptions() {
  186 + try {
  187 + const res = await getPurchaseDeptApi()
  188 + const list = (res && res.data) ? res.data : []
  189 + this.purchaseDeptOptions = (Array.isArray(list) ? list : []).map(it => ({
  190 + label: it && it.name != null ? String(it.name) : '',
  191 + value: it && it.id != null ? String(it.id) : ''
  192 + })).filter(it => it.value)
  193 + } catch (e) {
  194 + this.purchaseDeptOptions = []
145 } 195 }
146 }, 196 },
147 handleButtonClick(btn) { 197 handleButtonClick(btn) {
148 if (!btn || btn.disabled) return 198 if (!btn || btn.disabled) return
149 - if (typeof btn.onClick === 'function') return btn.onClick(this.detail, btn.params) 199 + if (typeof btn.onClick === 'function') return btn.onClick(this.form, btn.params)
150 const e = btn.event || '' 200 const e = btn.event || ''
  201 + if (e === 'audit') return this.onAudit(btn && btn.params)
  202 + if (e === 'auditDetail') return this.onAuditDetail(btn && btn.params)
151 if (e === 'edit') return this.onEdit(btn && btn.params) 203 if (e === 'edit') return this.onEdit(btn && btn.params)
  204 + if (e === 'cancel') return this.onCancel(btn && btn.params)
  205 + },
  206 + onAudit() {
  207 + const id = this.id || (this.form && this.form.id) || ''
  208 + if (!id) return
  209 + const CACHE_KEY = 'sourceBusinessId'
  210 + const TYPE = 'contractType'
  211 + uni.setStorageSync(TYPE, 'CUSTOMER_CREDIT_OUT')
  212 + uni.setStorageSync(CACHE_KEY, id)
  213 + uni.navigateTo({ url: '/pages/flow/audit' })
  214 + },
  215 + onAuditDetail() {
  216 + const id = this.id || (this.form && this.form.id) || ''
  217 + if (!id) return
  218 + const CACHE_KEY = 'sourceBusinessId'
  219 + const TYPE = 'contractType'
  220 + uni.setStorageSync(TYPE, 'CUSTOMER_CREDIT_OUT')
  221 + uni.setStorageSync(CACHE_KEY, id)
  222 + uni.navigateTo({ url: '/pages/flow/audit_detail' })
152 }, 223 },
153 onEdit() { 224 onEdit() {
154 uni.navigateTo({ url: '/pages/foreign_trade/modify?id=' + this.id }) 225 uni.navigateTo({ url: '/pages/foreign_trade/modify?id=' + this.id })
155 }, 226 },
  227 + onCancel() {
  228 + const id = this.id || (this.form && this.form.id) || ''
  229 + if (!id) return
  230 + uni.showModal({
  231 + title: '系统提示',
  232 + content: '是否确定取消该流程?',
  233 + confirmText: '确定',
  234 + cancelText: '取消',
  235 + success: (res) => {
  236 + if (res && res.confirm) {
  237 + foreignTradeCreditCancelApi(id).then(() => {
  238 + uni.showToast({ title: '已取消', icon: 'none' })
  239 + try { uni.setStorageSync('FOREIGN_TRADE_LIST_NEED_REFRESH', '1') } catch (e) {}
  240 + setTimeout(() => { uni.redirectTo({ url: '/pages/foreign_trade/index' }) }, 300)
  241 + }).catch((e) => {
  242 + uni.showToast({ title: (e && e.msg) || '取消失败', icon: 'none' })
  243 + })
  244 + }
  245 + }
  246 + })
  247 + },
156 safeText(v) { 248 safeText(v) {
157 const s = v == null ? '' : String(v) 249 const s = v == null ? '' : String(v)
158 return s.trim() ? s : '-' 250 return s.trim() ? s : '-'
@@ -168,7 +260,7 @@ export default { @@ -168,7 +260,7 @@ export default {
168 if (!this.id) return 260 if (!this.id) return
169 this.loading = true 261 this.loading = true
170 try { 262 try {
171 - const res = await foreignCustomerCreditGetApi(this.id) 263 + const res = await foreignTradeCreditGetApi(this.id)
172 const data = (res && res.data) ? res.data : {} 264 const data = (res && res.data) ? res.data : {}
173 this.form = data 265 this.form = data
174 } catch (e) { 266 } catch (e) {
  1 +<template>
  2 + <view class="detail-page">
  3 + <scroll-view class="scroll" scroll-y>
  4 + <view class="section">
  5 + <text class="row company">{{ safeText(form.unitName) }}</text>
  6 + <view class="row"><text class="label">公司性质</text><text class="value">{{ safeText(companyNatureText) }}</text></view>
  7 + <view class="row"><text class="label">法人代表</text><text class="value">{{ safeText(form.legalRepresentative) }}</text></view>
  8 + <view class="row"><text class="label">电话及传真</text><text class="value">{{ safeText(form.phoneAndFax) }}</text></view>
  9 + <view class="row"><text class="label">注册证书号</text><text class="value">{{ safeText(form.registrationCertificateNo) }}</text></view>
  10 + <view class="row"><text class="label">地址</text><text class="value">{{ safeText(form.address) }}</text></view>
  11 + <view class="row"><text class="label">国内业务负责人</text><text class="value">{{ safeText(form.domesticBusinessPrincipal) }}</text></view>
  12 + <view class="row"><text class="label">负责人身份证/护照号</text><text class="value">{{ safeText(form.principalCertificateNo) }}</text></view>
  13 + <view class="row"><text class="label">成立时间及货场规模</text><text class="value pre">{{ safeText(form.establishedTimeAndYardScale) }}</text></view>
  14 + <view class="row"><text class="label">经营品种、规模</text><text class="value pre">{{ safeText(form.overallBusinessVarietiesScale) }}</text></view>
  15 + <view class="row"><text class="label">出口到国内时间</text><text class="value">{{ safeText(form.exportToDomesticTime) }}</text></view>
  16 + <view class="row"><text class="label">出口规模、品种</text><text class="value pre">{{ safeText(form.exportToDomesticScaleVarieties) }}</text></view>
  17 + <view class="row"><text class="label">与国内合作企业</text><text class="value pre">{{ safeText(form.cooperatingDomesticCompanies) }}</text></view>
  18 + <view class="row"><text class="label">合作效果</text><text class="value pre">{{ safeText(form.cooperationEffect) }}</text></view>
  19 + <view class="row"><text class="label">供应商考察</text><text class="value pre">{{ safeText(form.supplierInspection) }}</text></view>
  20 + <view class="row"><text class="label">销售代表办公地考察</text><text class="value pre">{{ safeText(form.domesticSalesOfficeInspection) }}</text></view>
  21 + <view class="row"><text class="label">有无担保函</text><text class="value">{{ safeText(form.guaranteeLetter) }}</text></view>
  22 + <view class="row"><text class="label">合同纠纷</text><text class="value pre">{{ safeText(form.contractDispute) }}</text></view>
  23 + <view class="row"><text class="label">保险、运输方式</text><text class="value">{{ safeText(form.insuranceTransportMode) }}</text></view>
  24 + <view class="row"><text class="label">滞箱滞报费用</text><text class="value">{{ safeText(form.detentionDemurrageFee) }}</text></view>
  25 + <view class="row"><text class="label">操作品种</text><text class="value">{{ safeText(form.operationVariety) }}</text></view>
  26 + <view class="row"><text class="label">操作规模</text><text class="value">{{ safeText(form.operationScale) }}</text></view>
  27 + <view class="row"><text class="label">定价模式</text><text class="value">{{ safeText(form.pricingMode) }}</text></view>
  28 + <view class="row"><text class="label">结算方式</text><text class="value">{{ safeText(form.settlementMethod) }}</text></view>
  29 + <view class="row"><text class="label">磅差约定</text><text class="value">{{ safeText(form.weightDifferenceAgreement) }}</text></view>
  30 + <view class="row"><text class="label">质量标准</text><text class="value">{{ safeText(form.qualityStandard) }}</text></view>
  31 + <view class="row"><text class="label">供应商分类</text><text class="value">{{ safeText(supplierCategoryName) }}</text></view>
  32 + </view>
  33 +
  34 + <view class="title-header">
  35 + <image class="title-header_icon" src="/static/images/title.png" />
  36 + <span>操作方案</span>
  37 + </view>
  38 + <view class="section">
  39 + <view class="row"><text class="label">操作时间</text><text class="value">{{ safeText(form.schemeOperationTime) }}</text></view>
  40 + <view class="row"><text class="label">操作模式</text><text class="value">{{ safeText(form.schemeOperationMode) }}</text></view>
  41 + <view class="row"><text class="label">操作品种</text><text class="value">{{ safeText(form.schemeOperationVariety) }}</text></view>
  42 + <view class="row"><text class="label">操作数量</text><text class="value">{{ safeText(form.schemeOperationQuantity) }}</text></view>
  43 + <view class="row"><text class="label">发货要求</text><text class="value pre">{{ safeText(form.shippingRequirement) }}</text></view>
  44 + <view class="row"><text class="label">付款方式</text><text class="value">{{ safeText(form.paymentMethod) }}</text></view>
  45 + <view class="row"><text class="label">下次评审时间</text><text class="value">{{ safeText(form.nextReviewTime) }}</text></view>
  46 + <view class="row"><text class="label">评审部门</text><text class="value">{{ safeText(form.reviewDepartment) }}</text></view>
  47 + <view class="row"><text class="label">资信调查人</text><text class="value">{{ safeText(form.investigatorName) }}</text></view>
  48 + <view class="row"><text class="label">采购处</text><text class="value">{{ safeText(purchaseDeptName) }}</text></view>
  49 + </view>
  50 + </scroll-view>
  51 + </view>
  52 +</template>
  53 +
  54 +<script>
  55 +import { getDicByCodes, getDicName } from '@/utils/dic.js'
  56 +import { foreignTradeCreditGetExamineByIdApi, getPurchaseDeptApi } from '@/api/procure-manage/foreignTradeCredit.js'
  57 +
  58 +export default {
  59 + name: 'ForeignTradeCreditViewer',
  60 + props: { id: { type: [String, Number], default: '' } },
  61 + data() {
  62 + return {
  63 + form: {},
  64 + dicOptions: {
  65 + COMPANY_NATURE: []
  66 + },
  67 + purchaseDeptOptions: []
  68 + }
  69 + },
  70 + computed: {
  71 + companyNatureText() {
  72 + const v = this.form && this.form.companyNature != null ? String(this.form.companyNature) : ''
  73 + if (!v) return '-'
  74 + return getDicName('COMPANY_NATURE', v, this.dicOptions.COMPANY_NATURE) || v
  75 + },
  76 + supplierCategoryName() {
  77 + const v = this.form && this.form.supplierCategory != null ? String(this.form.supplierCategory) : ''
  78 + const map = { A: 'A类供应商', B: 'B类供应商', C: 'C类供应商', D: 'D类供应商' }
  79 + return map[v] || (v ? v : '-')
  80 + },
  81 + purchaseDeptName() {
  82 + const v = this.form && this.form.purchase_department != null ? String(this.form.purchase_department) : ''
  83 + if (!v) return '-'
  84 + const found = (this.purchaseDeptOptions || []).find(o => String(o.value) === v)
  85 + return found ? String(found.label || '') : v
  86 + }
  87 + },
  88 + created() {
  89 + this.loadDicData()
  90 + this.loadPurchaseDeptOptions()
  91 + },
  92 + watch: {
  93 + id: {
  94 + immediate: true,
  95 + handler(val) {
  96 + const v = (val !== undefined && val !== null) ? String(val) : ''
  97 + if (v) this.loadDetail(v)
  98 + }
  99 + }
  100 + },
  101 + methods: {
  102 + async loadDicData() {
  103 + try {
  104 + const results = await getDicByCodes(['COMPANY_NATURE'])
  105 + this.dicOptions.COMPANY_NATURE = (results.COMPANY_NATURE && results.COMPANY_NATURE.data) || []
  106 + } catch (e) {
  107 + this.dicOptions.COMPANY_NATURE = []
  108 + }
  109 + },
  110 + async loadPurchaseDeptOptions() {
  111 + try {
  112 + const res = await getPurchaseDeptApi()
  113 + const list = (res && res.data) ? res.data : []
  114 + this.purchaseDeptOptions = (Array.isArray(list) ? list : []).map(it => ({
  115 + label: it && it.name != null ? String(it.name) : '',
  116 + value: it && it.id != null ? String(it.id) : ''
  117 + })).filter(it => it.value)
  118 + } catch (e) {
  119 + this.purchaseDeptOptions = []
  120 + }
  121 + },
  122 + safeText(v) {
  123 + const s = v == null ? '' : String(v)
  124 + return s.trim() ? s : '-'
  125 + },
  126 + async loadDetail(id) {
  127 + try {
  128 + const res = await foreignTradeCreditGetExamineByIdApi(id)
  129 + this.form = (res && res.data) ? res.data : {}
  130 + } catch (e) {
  131 + this.form = {}
  132 + }
  133 + }
  134 + }
  135 +}
  136 +</script>
  137 +
  138 +<style lang="scss" scoped>
  139 +.detail-page {
  140 + background: #f3f3f3;
  141 +}
  142 +
  143 +.scroll {
  144 + flex: 1;
  145 + padding: 8rpx 0 144rpx;
  146 +}
  147 +
  148 +.title-header {
  149 + display: flex;
  150 + align-items: center;
  151 + padding: 24rpx 32rpx 12rpx;
  152 + background-color: #ffffff;
  153 +
  154 + .title-header_icon {
  155 + width: 36rpx;
  156 + height: 36rpx;
  157 + margin-right: 12rpx;
  158 + }
  159 +
  160 + span {
  161 + font-size: 34rpx;
  162 + font-weight: 600;
  163 + color: rgba(0, 0, 0, 0.9);
  164 + }
  165 +}
  166 +
  167 +.section {
  168 + padding: 32rpx;
  169 + background: #fff;
  170 + margin-bottom: 20rpx;
  171 +}
  172 +
  173 +.row {
  174 + display: flex;
  175 + margin-bottom: 28rpx;
  176 +
  177 + &:last-child {
  178 + margin-bottom: 0;
  179 + }
  180 +
  181 + &.company {
  182 + font-size: 36rpx;
  183 + font-weight: 600;
  184 + color: rgba(0, 0, 0, 0.9);
  185 + padding-top: 8rpx;
  186 + line-height: 50rpx;
  187 + }
  188 +
  189 + .label {
  190 + max-width: 420rpx;
  191 + margin-right: 20rpx;
  192 + line-height: 32rpx;
  193 + font-size: 28rpx;
  194 + color: rgba(0, 0, 0, 0.6);
  195 + }
  196 +
  197 + .value {
  198 + flex: 1;
  199 + line-height: 32rpx;
  200 + font-size: 28rpx;
  201 + color: rgba(0, 0, 0, 0.9);
  202 + text-align: right;
  203 + word-break: break-all;
  204 +
  205 + &.pre {
  206 + white-space: pre-wrap;
  207 + }
  208 + }
  209 +}
  210 +</style>
@@ -22,10 +22,10 @@ @@ -22,10 +22,10 @@
22 <text :class="['status', `status_${item.status}`]">{{ getAuditStatusText(item.status) }}</text> 22 <text :class="['status', `status_${item.status}`]">{{ getAuditStatusText(item.status) }}</text>
23 </view> 23 </view>
24 <view class="info-row"> 24 <view class="info-row">
25 - <text>供应商</text><text>{{ item.supplierName || '-' }}</text> 25 + <text>公司性质</text><text>{{ getCompanyNatureText(item.companyNature) }}</text>
26 </view> 26 </view>
27 <view class="info-row"> 27 <view class="info-row">
28 - <text>供应商分类</text><text>{{ supplierCategoryText(item.supplierCategory) }}</text> 28 + <text>法人代表</text><text>{{ item.legalRepresentative || '-' }}</text>
29 </view> 29 </view>
30 <view class="info-row"> 30 <view class="info-row">
31 <text>下次评审时间</text><text>{{ formatDateOnly(item.nextReviewTime) }}</text> 31 <text>下次评审时间</text><text>{{ formatDateOnly(item.nextReviewTime) }}</text>
@@ -62,7 +62,7 @@ @@ -62,7 +62,7 @@
62 import CardList from '@/components/card/index.vue' 62 import CardList from '@/components/card/index.vue'
63 import FilterModal from '@/components/filter/index.vue' 63 import FilterModal from '@/components/filter/index.vue'
64 import { getDicByCodes, getDicName } from '@/utils/dic.js' 64 import { getDicByCodes, getDicName } from '@/utils/dic.js'
65 -import { foreignCustomerCreditQueryApi } from '@/api/procure-manage/foreignCustomerCredit.js' 65 +import { foreignTradeCreditQueryApi } from '@/api/procure-manage/foreignTradeCredit.js'
66 66
67 export default { 67 export default {
68 name: 'ForeignTradeList', 68 name: 'ForeignTradeList',
@@ -88,7 +88,8 @@ export default { @@ -88,7 +88,8 @@ export default {
88 { value: '', text: '全部' } 88 { value: '', text: '全部' }
89 ], 89 ],
90 dicOptions: { 90 dicOptions: {
91 - AUDIT_STATUS: [] 91 + AUDIT_STATUS: [],
  92 + COMPANY_NATURE: []
92 }, 93 },
93 } 94 }
94 }, 95 },
@@ -123,23 +124,19 @@ export default { @@ -123,23 +124,19 @@ export default {
123 methods: { 124 methods: {
124 async loadDicData() { 125 async loadDicData() {
125 try { 126 try {
126 - const results = await getDicByCodes(['AUDIT_STATUS']) 127 + const results = await getDicByCodes(['AUDIT_STATUS', 'COMPANY_NATURE'])
127 this.dicOptions.AUDIT_STATUS = (results.AUDIT_STATUS && results.AUDIT_STATUS.data) || [] 128 this.dicOptions.AUDIT_STATUS = (results.AUDIT_STATUS && results.AUDIT_STATUS.data) || []
  129 + this.dicOptions.COMPANY_NATURE = (results.COMPANY_NATURE && results.COMPANY_NATURE.data) || []
128 const list = Array.isArray(this.dicOptions.AUDIT_STATUS) ? this.dicOptions.AUDIT_STATUS : [] 130 const list = Array.isArray(this.dicOptions.AUDIT_STATUS) ? this.dicOptions.AUDIT_STATUS : []
129 this.statusOptions = [{ value: '', text: '全部' }].concat( 131 this.statusOptions = [{ value: '', text: '全部' }].concat(
130 list.map(it => ({ value: it && it.code != null ? String(it.code) : '', text: it && it.name != null ? String(it.name) : '' })).filter(it => it.value) 132 list.map(it => ({ value: it && it.code != null ? String(it.code) : '', text: it && it.name != null ? String(it.name) : '' })).filter(it => it.value)
131 ) 133 )
132 } catch (e) { 134 } catch (e) {
133 this.dicOptions.AUDIT_STATUS = [] 135 this.dicOptions.AUDIT_STATUS = []
  136 + this.dicOptions.COMPANY_NATURE = []
134 this.statusOptions = [{ value: '', text: '全部' }] 137 this.statusOptions = [{ value: '', text: '全部' }]
135 } 138 }
136 }, 139 },
137 - supplierCategoryText(v) {  
138 - const s = v == null ? '' : String(v).trim()  
139 - if (!s) return '-'  
140 - const map = { A: 'A类供应商', B: 'B类供应商', C: 'C类供应商', D: 'D类供应商' }  
141 - return map[s] || s  
142 - },  
143 formatDateOnly(v) { 140 formatDateOnly(v) {
144 const s = v == null ? '' : String(v).trim() 141 const s = v == null ? '' : String(v).trim()
145 if (!s) return '-' 142 if (!s) return '-'
@@ -211,6 +208,11 @@ export default { @@ -211,6 +208,11 @@ export default {
211 if (!v) return '-' 208 if (!v) return '-'
212 return getDicName('AUDIT_STATUS', v, this.dicOptions.AUDIT_STATUS) || v 209 return getDicName('AUDIT_STATUS', v, this.dicOptions.AUDIT_STATUS) || v
213 }, 210 },
  211 + getCompanyNatureText(v) {
  212 + const s = v == null ? '' : String(v).trim()
  213 + if (!s) return '-'
  214 + return getDicName('COMPANY_NATURE', s, this.dicOptions.COMPANY_NATURE) || s
  215 + },
214 fetchList({ pageIndex, pageSize, query }) { 216 fetchList({ pageIndex, pageSize, query }) {
215 const q = query || {} 217 const q = query || {}
216 const range = Array.isArray(q.dateRange) ? q.dateRange : [] 218 const range = Array.isArray(q.dateRange) ? q.dateRange : []
@@ -222,7 +224,7 @@ export default { @@ -222,7 +224,7 @@ export default {
222 createDateStart: (range && range.length === 2) ? range[0] : '', 224 createDateStart: (range && range.length === 2) ? range[0] : '',
223 createDateEnd: (range && range.length === 2) ? range[1] : '' 225 createDateEnd: (range && range.length === 2) ? range[1] : ''
224 } 226 }
225 - return foreignCustomerCreditQueryApi(params).then(res => { 227 + return foreignTradeCreditQueryApi(params).then(res => {
226 const _data = res && res.data ? res.data : {} 228 const _data = res && res.data ? res.data : {}
227 let records = _data.datas || _data.list || _data.records || [] 229 let records = _data.datas || _data.list || _data.records || []
228 const totalCount = _data.totalCount || _data.count || 0 230 const totalCount = _data.totalCount || _data.count || 0
@@ -4,18 +4,6 @@ @@ -4,18 +4,6 @@
4 <uni-list> 4 <uni-list>
5 <view class="title-header"> 5 <view class="title-header">
6 <image class="title-header_icon" src="/static/images/title.png" /> 6 <image class="title-header_icon" src="/static/images/title.png" />
7 - <span>供应商</span>  
8 - </view>  
9 -  
10 - <uni-list-item class="select-item" :class="form.supplierName ? 'is-filled' : 'is-empty'" clickable  
11 - @click="openSheet('supplier')" :rightText="displayLabel('supplierName')" showArrow>  
12 - <template v-slot:body>  
13 - <view class="item-title"><text>供应商</text></view>  
14 - </template>  
15 - </uni-list-item>  
16 -  
17 - <view class="title-header">  
18 - <image class="title-header_icon" src="/static/images/title.png" />  
19 <span>基本资料</span> 7 <span>基本资料</span>
20 </view> 8 </view>
21 9
@@ -25,9 +13,10 @@ @@ -25,9 +13,10 @@
25 </template> 13 </template>
26 </uni-list-item> 14 </uni-list-item>
27 15
28 - <uni-list-item title="公司性质">  
29 - <template v-slot:footer>  
30 - <uni-easyinput v-model="form.companyNature" placeholder="请输入" :inputBorder="false" /> 16 + <uni-list-item class="select-item" :class="form.companyNature ? 'is-filled' : 'is-empty'" clickable
  17 + @click="openSheet('companyNature')" :rightText="displayLabel('companyNatureName')" showArrow>
  18 + <template v-slot:body>
  19 + <view class="item-title"><text>公司性质</text></view>
31 </template> 20 </template>
32 </uni-list-item> 21 </uni-list-item>
33 22
@@ -39,7 +28,7 @@ @@ -39,7 +28,7 @@
39 28
40 <uni-list-item title="电话及传真"> 29 <uni-list-item title="电话及传真">
41 <template v-slot:footer> 30 <template v-slot:footer>
42 - <uni-easyinput v-model="form.phoneFax" placeholder="请输入" :inputBorder="false" /> 31 + <uni-easyinput v-model="form.phoneAndFax" placeholder="请输入" :inputBorder="false" />
43 </template> 32 </template>
44 </uni-list-item> 33 </uni-list-item>
45 34
@@ -57,13 +46,13 @@ @@ -57,13 +46,13 @@
57 46
58 <uni-list-item title="国内业务负责人"> 47 <uni-list-item title="国内业务负责人">
59 <template v-slot:footer> 48 <template v-slot:footer>
60 - <uni-easyinput v-model="form.domesticBusinessLeader" placeholder="请输入" :inputBorder="false" /> 49 + <uni-easyinput v-model="form.domesticBusinessPrincipal" placeholder="请输入" :inputBorder="false" />
61 </template> 50 </template>
62 </uni-list-item> 51 </uni-list-item>
63 52
64 <uni-list-item title="负责人身份证/护照号"> 53 <uni-list-item title="负责人身份证/护照号">
65 <template v-slot:footer> 54 <template v-slot:footer>
66 - <uni-easyinput v-model="form.leaderIdPassportNo" placeholder="请输入" :inputBorder="false" /> 55 + <uni-easyinput v-model="form.principalCertificateNo" placeholder="请输入" :inputBorder="false" />
67 </template> 56 </template>
68 </uni-list-item> 57 </uni-list-item>
69 58
@@ -75,7 +64,7 @@ @@ -75,7 +64,7 @@
75 64
76 <uni-list-item title="经营品种、规模"> 65 <uni-list-item title="经营品种、规模">
77 <template v-slot:footer> 66 <template v-slot:footer>
78 - <uni-easyinput type="textarea" v-model="form.overallBusinessVarietyScale" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 67 + <uni-easyinput type="textarea" v-model="form.overallBusinessVarietiesScale" placeholder="请输入" :inputBorder="false" maxlength="2000" />
79 </template> 68 </template>
80 </uni-list-item> 69 </uni-list-item>
81 70
@@ -87,13 +76,13 @@ @@ -87,13 +76,13 @@
87 76
88 <uni-list-item title="出口规模、品种"> 77 <uni-list-item title="出口规模、品种">
89 <template v-slot:footer> 78 <template v-slot:footer>
90 - <uni-easyinput type="textarea" v-model="form.exportToDomesticScaleVariety" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 79 + <uni-easyinput type="textarea" v-model="form.exportToDomesticScaleVarieties" placeholder="请输入" :inputBorder="false" maxlength="2000" />
91 </template> 80 </template>
92 </uni-list-item> 81 </uni-list-item>
93 82
94 <uni-list-item title="与国内合作企业"> 83 <uni-list-item title="与国内合作企业">
95 <template v-slot:footer> 84 <template v-slot:footer>
96 - <uni-easyinput type="textarea" v-model="form.domesticCooperationCompanies" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 85 + <uni-easyinput type="textarea" v-model="form.cooperatingDomesticCompanies" placeholder="请输入" :inputBorder="false" maxlength="2000" />
97 </template> 86 </template>
98 </uni-list-item> 87 </uni-list-item>
99 88
@@ -111,13 +100,13 @@ @@ -111,13 +100,13 @@
111 100
112 <uni-list-item title="销售代表办公地考察"> 101 <uni-list-item title="销售代表办公地考察">
113 <template v-slot:footer> 102 <template v-slot:footer>
114 - <uni-easyinput type="textarea" v-model="form.domesticSalesRepOfficeInspection" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 103 + <uni-easyinput type="textarea" v-model="form.domesticSalesOfficeInspection" placeholder="请输入" :inputBorder="false" maxlength="2000" />
115 </template> 104 </template>
116 </uni-list-item> 105 </uni-list-item>
117 106
118 <uni-list-item title="有无担保函"> 107 <uni-list-item title="有无担保函">
119 <template v-slot:footer> 108 <template v-slot:footer>
120 - <uni-easyinput v-model="form.hasGuaranteeLetter" placeholder="请输入" :inputBorder="false" /> 109 + <uni-easyinput v-model="form.guaranteeLetter" placeholder="请输入" :inputBorder="false" />
121 </template> 110 </template>
122 </uni-list-item> 111 </uni-list-item>
123 112
@@ -135,25 +124,25 @@ @@ -135,25 +124,25 @@
135 124
136 <uni-list-item title="滞箱滞报费用"> 125 <uni-list-item title="滞箱滞报费用">
137 <template v-slot:footer> 126 <template v-slot:footer>
138 - <uni-easyinput v-model="form.demurrageFee" placeholder="请输入" :inputBorder="false" /> 127 + <uni-easyinput v-model="form.detentionDemurrageFee" placeholder="请输入" :inputBorder="false" />
139 </template> 128 </template>
140 </uni-list-item> 129 </uni-list-item>
141 130
142 <uni-list-item title="操作品种"> 131 <uni-list-item title="操作品种">
143 <template v-slot:footer> 132 <template v-slot:footer>
144 - <uni-easyinput v-model="form.operatingVariety" placeholder="请输入" :inputBorder="false" /> 133 + <uni-easyinput v-model="form.operationVariety" placeholder="请输入" :inputBorder="false" />
145 </template> 134 </template>
146 </uni-list-item> 135 </uni-list-item>
147 136
148 <uni-list-item title="操作规模"> 137 <uni-list-item title="操作规模">
149 <template v-slot:footer> 138 <template v-slot:footer>
150 - <uni-easyinput v-model="form.operatingScale" placeholder="请输入" :inputBorder="false" /> 139 + <uni-easyinput v-model="form.operationScale" placeholder="请输入" :inputBorder="false" />
151 </template> 140 </template>
152 </uni-list-item> 141 </uni-list-item>
153 142
154 <uni-list-item title="定价模式"> 143 <uni-list-item title="定价模式">
155 <template v-slot:footer> 144 <template v-slot:footer>
156 - <uni-easyinput v-model="form.pricingModel" placeholder="请输入" :inputBorder="false" /> 145 + <uni-easyinput v-model="form.pricingMode" placeholder="请输入" :inputBorder="false" />
157 </template> 146 </template>
158 </uni-list-item> 147 </uni-list-item>
159 148
@@ -165,7 +154,7 @@ @@ -165,7 +154,7 @@
165 154
166 <uni-list-item title="磅差约定"> 155 <uni-list-item title="磅差约定">
167 <template v-slot:footer> 156 <template v-slot:footer>
168 - <uni-easyinput v-model="form.weightDiffAgreement" placeholder="请输入" :inputBorder="false" /> 157 + <uni-easyinput v-model="form.weightDifferenceAgreement" placeholder="请输入" :inputBorder="false" />
169 </template> 158 </template>
170 </uni-list-item> 159 </uni-list-item>
171 160
@@ -194,31 +183,31 @@ @@ -194,31 +183,31 @@
194 183
195 <uni-list-item title="操作时间"> 184 <uni-list-item title="操作时间">
196 <template v-slot:footer> 185 <template v-slot:footer>
197 - <uni-easyinput v-model="form.operationTime" placeholder="请输入" :inputBorder="false" /> 186 + <uni-easyinput v-model="form.schemeOperationTime" placeholder="请输入" :inputBorder="false" />
198 </template> 187 </template>
199 </uni-list-item> 188 </uni-list-item>
200 189
201 <uni-list-item title="操作模式"> 190 <uni-list-item title="操作模式">
202 <template v-slot:footer> 191 <template v-slot:footer>
203 - <uni-easyinput v-model="form.operationMode" placeholder="请输入" :inputBorder="false" /> 192 + <uni-easyinput v-model="form.schemeOperationMode" placeholder="请输入" :inputBorder="false" />
204 </template> 193 </template>
205 </uni-list-item> 194 </uni-list-item>
206 195
207 <uni-list-item title="操作品种"> 196 <uni-list-item title="操作品种">
208 <template v-slot:footer> 197 <template v-slot:footer>
209 - <uni-easyinput v-model="form.operationVariety" placeholder="请输入" :inputBorder="false" /> 198 + <uni-easyinput v-model="form.schemeOperationVariety" placeholder="请输入" :inputBorder="false" />
210 </template> 199 </template>
211 </uni-list-item> 200 </uni-list-item>
212 201
213 <uni-list-item title="操作数量"> 202 <uni-list-item title="操作数量">
214 <template v-slot:footer> 203 <template v-slot:footer>
215 - <uni-easyinput v-model="form.operationQuantity" placeholder="请输入" :inputBorder="false" /> 204 + <uni-easyinput v-model="form.schemeOperationQuantity" placeholder="请输入" :inputBorder="false" />
216 </template> 205 </template>
217 </uni-list-item> 206 </uni-list-item>
218 207
219 <uni-list-item title="发货要求"> 208 <uni-list-item title="发货要求">
220 <template v-slot:footer> 209 <template v-slot:footer>
221 - <uni-easyinput type="textarea" v-model="form.deliveryRequirement" placeholder="请输入" :inputBorder="false" maxlength="2000" /> 210 + <uni-easyinput type="textarea" v-model="form.shippingRequirement" placeholder="请输入" :inputBorder="false" maxlength="2000" />
222 </template> 211 </template>
223 </uni-list-item> 212 </uni-list-item>
224 213
@@ -234,11 +223,24 @@ @@ -234,11 +223,24 @@
234 </template> 223 </template>
235 </uni-list-item> 224 </uni-list-item>
236 225
237 - <uni-list-item class="mgb10" title="评审部门"> 226 + <uni-list-item title="评审部门">
238 <template v-slot:footer> 227 <template v-slot:footer>
239 <uni-easyinput v-model="form.reviewDepartment" placeholder="请输入" :inputBorder="false" /> 228 <uni-easyinput v-model="form.reviewDepartment" placeholder="请输入" :inputBorder="false" />
240 </template> 229 </template>
241 </uni-list-item> 230 </uni-list-item>
  231 +
  232 + <uni-list-item title="资信调查人">
  233 + <template v-slot:footer>
  234 + <uni-easyinput v-model="form.investigatorName" :inputBorder="false" disabled />
  235 + </template>
  236 + </uni-list-item>
  237 +
  238 + <uni-list-item class="select-item mgb10" :class="form.purchase_department ? 'is-filled' : 'is-empty'" clickable
  239 + @click="openSheet('purchase_department')" :rightText="displayLabel('purchase_departmentName')" showArrow>
  240 + <template v-slot:body>
  241 + <view class="item-title"><text>采购处</text></view>
  242 + </template>
  243 + </uni-list-item>
242 </uni-list> 244 </uni-list>
243 </scroll-view> 245 </scroll-view>
244 246
@@ -254,7 +256,7 @@ @@ -254,7 +256,7 @@
254 <script> 256 <script>
255 import SingleSelectSheet from '@/components/single-select/index.vue' 257 import SingleSelectSheet from '@/components/single-select/index.vue'
256 import { getDicByCodes } from '@/utils/dic.js' 258 import { getDicByCodes } from '@/utils/dic.js'
257 -import { foreignCustomerCreditGetApi, foreignCustomerCreditSaveApi } from '@/api/procure-manage/foreignCustomerCredit.js' 259 +import { foreignTradeCreditGetApi, foreignTradeCreditSaveApi, getPurchaseDeptApi } from '@/api/procure-manage/foreignTradeCredit.js'
258 260
259 export default { 261 export default {
260 name: 'ForeignTradeModify', 262 name: 'ForeignTradeModify',
@@ -264,94 +266,113 @@ export default { @@ -264,94 +266,113 @@ export default {
264 id: '', 266 id: '',
265 submitting: false, 267 submitting: false,
266 loading: false, 268 loading: false,
267 - supplierOptions: [],  
268 supplierCategoryOptions: [ 269 supplierCategoryOptions: [
269 { label: 'A类供应商', value: 'A' }, 270 { label: 'A类供应商', value: 'A' },
270 { label: 'B类供应商', value: 'B' }, 271 { label: 'B类供应商', value: 'B' },
271 { label: 'C类供应商', value: 'C' }, 272 { label: 'C类供应商', value: 'C' },
272 { label: 'D类供应商', value: 'D' } 273 { label: 'D类供应商', value: 'D' }
273 ], 274 ],
  275 + companyNatureOptions: [],
  276 + purchaseDeptOptions: [],
274 sheet: { visible: false, title: '', options: [], field: '', value: '' }, 277 sheet: { visible: false, title: '', options: [], field: '', value: '' },
275 form: { 278 form: {
276 id: '', 279 id: '',
277 - supplier: '',  
278 - supplierName: '',  
279 unitName: '', 280 unitName: '',
280 companyNature: '', 281 companyNature: '',
  282 + companyNatureName: '',
281 legalRepresentative: '', 283 legalRepresentative: '',
282 - phoneFax: '', 284 + phoneAndFax: '',
283 registrationCertificateNo: '', 285 registrationCertificateNo: '',
284 address: '', 286 address: '',
285 - domesticBusinessLeader: '',  
286 - leaderIdPassportNo: '', 287 + domesticBusinessPrincipal: '',
  288 + principalCertificateNo: '',
287 establishedTimeAndYardScale: '', 289 establishedTimeAndYardScale: '',
288 - overallBusinessVarietyScale: '', 290 + overallBusinessVarietiesScale: '',
289 exportToDomesticTime: '', 291 exportToDomesticTime: '',
290 - exportToDomesticScaleVariety: '',  
291 - domesticCooperationCompanies: '', 292 + exportToDomesticScaleVarieties: '',
  293 + cooperatingDomesticCompanies: '',
292 cooperationEffect: '', 294 cooperationEffect: '',
293 supplierInspection: '', 295 supplierInspection: '',
294 - domesticSalesRepOfficeInspection: '',  
295 - hasGuaranteeLetter: '', 296 + domesticSalesOfficeInspection: '',
  297 + guaranteeLetter: '',
296 contractDispute: '', 298 contractDispute: '',
297 insuranceTransportMode: '', 299 insuranceTransportMode: '',
298 - demurrageFee: '',  
299 - operatingVariety: '',  
300 - operatingScale: '',  
301 - pricingModel: '', 300 + detentionDemurrageFee: '',
  301 + operationVariety: '',
  302 + operationScale: '',
  303 + pricingMode: '',
302 settlementMethod: '', 304 settlementMethod: '',
303 - weightDiffAgreement: '', 305 + weightDifferenceAgreement: '',
304 qualityStandard: '', 306 qualityStandard: '',
305 supplierCategory: '', 307 supplierCategory: '',
306 - operationTime: '',  
307 - operationMode: '',  
308 - operationVariety: '',  
309 - operationQuantity: '',  
310 - deliveryRequirement: '', 308 + schemeOperationTime: '',
  309 + schemeOperationMode: '',
  310 + schemeOperationVariety: '',
  311 + schemeOperationQuantity: '',
  312 + shippingRequirement: '',
311 paymentMethod: '', 313 paymentMethod: '',
312 nextReviewTime: '', 314 nextReviewTime: '',
313 - reviewDepartment: '' 315 + reviewDepartment: '',
  316 + investigatorId: '',
  317 + investigatorName: '',
  318 + purchase_department: '',
  319 + purchase_departmentName: ''
314 } 320 }
315 } 321 }
316 }, 322 },
317 async onLoad(query) { 323 async onLoad(query) {
318 const id = (query && (query.id || query.code)) ? String(query.id || query.code) : '' 324 const id = (query && (query.id || query.code)) ? String(query.id || query.code) : ''
319 this.id = id 325 this.id = id
320 - await this.loadSupplierOptions() 326 + await this.loadDicData()
  327 + await this.loadPurchaseDeptOptions()
321 await this.loadDetail() 328 await this.loadDetail()
322 }, 329 },
323 methods: { 330 methods: {
324 - async loadSupplierOptions() { 331 + async loadDicData() {
325 try { 332 try {
326 - const results = await getDicByCodes(['SUPPLIER'])  
327 - const items = results && results.SUPPLIER && results.SUPPLIER.data ? results.SUPPLIER.data : []  
328 - this.supplierOptions = (Array.isArray(items) ? items : []).map(it => ({ 333 + const results = await getDicByCodes(['COMPANY_NATURE'])
  334 + const items = results && results.COMPANY_NATURE && results.COMPANY_NATURE.data ? results.COMPANY_NATURE.data : []
  335 + this.companyNatureOptions = (Array.isArray(items) ? items : []).map(it => ({
329 label: it && it.name != null ? String(it.name) : '', 336 label: it && it.name != null ? String(it.name) : '',
330 value: it && it.code != null ? String(it.code) : '' 337 value: it && it.code != null ? String(it.code) : ''
331 })).filter(it => it.value) 338 })).filter(it => it.value)
332 } catch (e) { 339 } catch (e) {
333 - this.supplierOptions = [] 340 + this.companyNatureOptions = []
  341 + }
  342 + },
  343 + async loadPurchaseDeptOptions() {
  344 + try {
  345 + const res = await getPurchaseDeptApi()
  346 + const list = (res && res.data) ? res.data : []
  347 + this.purchaseDeptOptions = (Array.isArray(list) ? list : []).map(it => ({
  348 + label: it && it.name != null ? String(it.name) : '',
  349 + value: it && it.id != null ? String(it.id) : ''
  350 + })).filter(it => it.value)
  351 + } catch (e) {
  352 + this.purchaseDeptOptions = []
334 } 353 }
335 }, 354 },
336 displayLabel(field) { 355 displayLabel(field) {
337 const m = this.form || {} 356 const m = this.form || {}
338 const map = { 357 const map = {
339 - supplierName: '请选择', 358 + companyNatureName: '请选择',
  359 + purchase_departmentName: '请选择',
340 supplierCategory: '请选择' 360 supplierCategory: '请选择'
341 } 361 }
342 - const v = m[field]  
343 - if (v != null && String(v).trim()) return String(v)  
344 if (field === 'supplierCategory') { 362 if (field === 'supplierCategory') {
345 const code = m.supplierCategory 363 const code = m.supplierCategory
346 const found = (this.supplierCategoryOptions || []).find(o => String(o.value) === String(code)) 364 const found = (this.supplierCategoryOptions || []).find(o => String(o.value) === String(code))
347 return found ? String(found.label || '') : map[field] 365 return found ? String(found.label || '') : map[field]
348 } 366 }
  367 + const v = m[field]
  368 + if (v != null && String(v).trim()) return String(v)
349 return map[field] || '请选择' 369 return map[field] || '请选择'
350 }, 370 },
351 openSheet(field) { 371 openSheet(field) {
352 const map = { 372 const map = {
353 - supplier: { title: '选择供应商', options: this.supplierOptions, valueField: 'supplier', labelField: 'supplierName' },  
354 - supplierCategory: { title: '供应商分类', options: this.supplierCategoryOptions, valueField: 'supplierCategory', labelField: '' } 373 + companyNature: { title: '公司性质', options: this.companyNatureOptions, valueField: 'companyNature', labelField: 'companyNatureName' },
  374 + supplierCategory: { title: '供应商分类', options: this.supplierCategoryOptions, valueField: 'supplierCategory', labelField: '' },
  375 + purchase_department: { title: '采购处', options: this.purchaseDeptOptions, valueField: 'purchase_department', labelField: 'purchase_departmentName' }
355 } 376 }
356 const cfg = map[field] 377 const cfg = map[field]
357 if (!cfg) return 378 if (!cfg) return
@@ -368,25 +389,32 @@ export default { @@ -368,25 +389,32 @@ export default {
368 }, 389 },
369 onSheetConfirm({ value, label }) { 390 onSheetConfirm({ value, label }) {
370 const field = this.sheet.field 391 const field = this.sheet.field
371 - if (field === 'supplier') {  
372 - this.form.supplier = value  
373 - this.form.supplierName = label  
374 - } 392 + if (field === 'companyNature') this.form.companyNatureName = label
375 if (field === 'supplierCategory') { 393 if (field === 'supplierCategory') {
376 this.form.supplierCategory = value 394 this.form.supplierCategory = value
377 } 395 }
  396 + if (field === 'purchase_department') this.form.purchase_departmentName = label
  397 + if (field === 'companyNature') this.form.companyNature = value
  398 + if (field === 'purchase_department') this.form.purchase_department = value
378 this.sheet.visible = false 399 this.sheet.visible = false
379 }, 400 },
380 async loadDetail() { 401 async loadDetail() {
381 if (!this.id) return 402 if (!this.id) return
382 this.loading = true 403 this.loading = true
383 try { 404 try {
384 - const res = await foreignCustomerCreditGetApi(this.id) 405 + const res = await foreignTradeCreditGetApi(this.id)
385 const data = (res && res.data) ? res.data : {} 406 const data = (res && res.data) ? res.data : {}
386 this.form = { ...this.form, ...data, id: this.id } 407 this.form = { ...this.form, ...data, id: this.id }
387 - if (!this.form.supplierName && this.form.supplier) {  
388 - const found = (this.supplierOptions || []).find(o => String(o.value) === String(this.form.supplier))  
389 - if (found) this.form.supplierName = String(found.label || '') 408 + const u = (this.$store && this.$store.state && this.$store.state.user) ? this.$store.state.user : {}
  409 + if (!this.form.investigatorId) this.form.investigatorId = u && u.id ? String(u.id) : ''
  410 + if (!this.form.investigatorName) this.form.investigatorName = u && u.name ? String(u.name) : ''
  411 + if (!this.form.companyNatureName && this.form.companyNature) {
  412 + const found = (this.companyNatureOptions || []).find(o => String(o.value) === String(this.form.companyNature))
  413 + if (found) this.form.companyNatureName = String(found.label || '')
  414 + }
  415 + if (!this.form.purchase_departmentName && this.form.purchase_department) {
  416 + const found = (this.purchaseDeptOptions || []).find(o => String(o.value) === String(this.form.purchase_department))
  417 + if (found) this.form.purchase_departmentName = String(found.label || '')
390 } 418 }
391 } catch (e) { 419 } catch (e) {
392 uni.showToast({ title: '详情加载失败', icon: 'none' }) 420 uni.showToast({ title: '详情加载失败', icon: 'none' })
@@ -396,42 +424,43 @@ export default { @@ -396,42 +424,43 @@ export default {
396 }, 424 },
397 validate() { 425 validate() {
398 const requiredFields = [ 426 const requiredFields = [
399 - { key: 'supplier', label: '供应商' },  
400 { key: 'unitName', label: '单位名称' }, 427 { key: 'unitName', label: '单位名称' },
401 { key: 'companyNature', label: '公司性质' }, 428 { key: 'companyNature', label: '公司性质' },
402 { key: 'legalRepresentative', label: '法人代表' }, 429 { key: 'legalRepresentative', label: '法人代表' },
403 - { key: 'phoneFax', label: '电话及传真' }, 430 + { key: 'phoneAndFax', label: '电话及传真' },
404 { key: 'registrationCertificateNo', label: '注册证书号' }, 431 { key: 'registrationCertificateNo', label: '注册证书号' },
405 { key: 'address', label: '地址' }, 432 { key: 'address', label: '地址' },
406 - { key: 'domesticBusinessLeader', label: '国内业务负责人' },  
407 - { key: 'leaderIdPassportNo', label: '负责人身份证/护照号' }, 433 + { key: 'domesticBusinessPrincipal', label: '国内业务负责人' },
  434 + { key: 'principalCertificateNo', label: '负责人身份证/护照号' },
408 { key: 'establishedTimeAndYardScale', label: '成立时间及货场规模' }, 435 { key: 'establishedTimeAndYardScale', label: '成立时间及货场规模' },
409 - { key: 'overallBusinessVarietyScale', label: '经营品种、规模' }, 436 + { key: 'overallBusinessVarietiesScale', label: '经营品种、规模' },
410 { key: 'exportToDomesticTime', label: '出口到国内时间' }, 437 { key: 'exportToDomesticTime', label: '出口到国内时间' },
411 - { key: 'exportToDomesticScaleVariety', label: '出口规模、品种' },  
412 - { key: 'domesticCooperationCompanies', label: '与国内合作企业' }, 438 + { key: 'exportToDomesticScaleVarieties', label: '出口规模、品种' },
  439 + { key: 'cooperatingDomesticCompanies', label: '与国内合作企业' },
413 { key: 'cooperationEffect', label: '合作效果' }, 440 { key: 'cooperationEffect', label: '合作效果' },
414 { key: 'supplierInspection', label: '供应商考察' }, 441 { key: 'supplierInspection', label: '供应商考察' },
415 - { key: 'domesticSalesRepOfficeInspection', label: '销售代表办公地考察' },  
416 - { key: 'hasGuaranteeLetter', label: '有无担保函' }, 442 + { key: 'domesticSalesOfficeInspection', label: '销售代表办公地考察' },
  443 + { key: 'guaranteeLetter', label: '有无担保函' },
417 { key: 'contractDispute', label: '合同纠纷' }, 444 { key: 'contractDispute', label: '合同纠纷' },
418 { key: 'insuranceTransportMode', label: '保险、运输方式' }, 445 { key: 'insuranceTransportMode', label: '保险、运输方式' },
419 - { key: 'demurrageFee', label: '滞箱滞报费用' },  
420 - { key: 'operatingVariety', label: '操作品种' },  
421 - { key: 'operatingScale', label: '操作规模' },  
422 - { key: 'pricingModel', label: '定价模式' }, 446 + { key: 'detentionDemurrageFee', label: '滞箱滞报费用' },
  447 + { key: 'operationVariety', label: '操作品种' },
  448 + { key: 'operationScale', label: '操作规模' },
  449 + { key: 'pricingMode', label: '定价模式' },
423 { key: 'settlementMethod', label: '结算方式' }, 450 { key: 'settlementMethod', label: '结算方式' },
424 - { key: 'weightDiffAgreement', label: '磅差约定' }, 451 + { key: 'weightDifferenceAgreement', label: '磅差约定' },
425 { key: 'qualityStandard', label: '质量标准' }, 452 { key: 'qualityStandard', label: '质量标准' },
426 { key: 'supplierCategory', label: '供应商分类' }, 453 { key: 'supplierCategory', label: '供应商分类' },
427 - { key: 'operationTime', label: '操作时间' },  
428 - { key: 'operationMode', label: '操作模式' },  
429 - { key: 'operationVariety', label: '操作品种' },  
430 - { key: 'operationQuantity', label: '操作数量' },  
431 - { key: 'deliveryRequirement', label: '发货要求' }, 454 + { key: 'schemeOperationTime', label: '操作时间' },
  455 + { key: 'schemeOperationMode', label: '操作模式' },
  456 + { key: 'schemeOperationVariety', label: '操作品种' },
  457 + { key: 'schemeOperationQuantity', label: '操作数量' },
  458 + { key: 'shippingRequirement', label: '发货要求' },
432 { key: 'paymentMethod', label: '付款方式' }, 459 { key: 'paymentMethod', label: '付款方式' },
433 { key: 'nextReviewTime', label: '下次评审时间' }, 460 { key: 'nextReviewTime', label: '下次评审时间' },
434 - { key: 'reviewDepartment', label: '评审部门' } 461 + { key: 'reviewDepartment', label: '评审部门' },
  462 + { key: 'investigatorId', label: '资信调查人ID' },
  463 + { key: 'purchase_department', label: '采购处' }
435 ] 464 ]
436 for (let i = 0; i < requiredFields.length; i++) { 465 for (let i = 0; i < requiredFields.length; i++) {
437 const f = requiredFields[i] 466 const f = requiredFields[i]
@@ -452,7 +481,7 @@ export default { @@ -452,7 +481,7 @@ export default {
452 this.submitting = true 481 this.submitting = true
453 const payload = this.buildPayload() 482 const payload = this.buildPayload()
454 try { 483 try {
455 - await foreignCustomerCreditSaveApi(payload) 484 + await foreignTradeCreditSaveApi(payload)
456 uni.showToast({ title: '保存成功', icon: 'success' }) 485 uni.showToast({ title: '保存成功', icon: 'success' })
457 try { uni.setStorageSync('FOREIGN_TRADE_LIST_NEED_REFRESH', '1') } catch (e) {} 486 try { uni.setStorageSync('FOREIGN_TRADE_LIST_NEED_REFRESH', '1') } catch (e) {}
458 setTimeout(() => { uni.navigateBack() }, 300) 487 setTimeout(() => { uni.navigateBack() }, 300)
1 import CustomerDevelopViewer from '@/pages/dev_manage/viewer.vue' 1 import CustomerDevelopViewer from '@/pages/dev_manage/viewer.vue'
2 import CustomerCreditViewer from '@/pages/credit_manage/viewer.vue' 2 import CustomerCreditViewer from '@/pages/credit_manage/viewer.vue'
  3 +import DomesticCustomerCreditViewer from '@/pages/domestic_trade/domesticCreditViewer.vue'
  4 +import ForeignTradeCreditViewer from '@/pages/foreign_trade/foreignTradeCreditViewer.vue'
3 import RetailViewer from '@/pages/contract_retail/retailViewer.vue' 5 import RetailViewer from '@/pages/contract_retail/retailViewer.vue'
4 import ForeignStdViewer from '@/pages/contract_foreign_std/foreignStdViewer.vue' 6 import ForeignStdViewer from '@/pages/contract_foreign_std/foreignStdViewer.vue'
5 import StockViewer from '@/pages/contract_stock/stockViewer.vue' 7 import StockViewer from '@/pages/contract_stock/stockViewer.vue'
@@ -26,6 +28,8 @@ import FollowUpFormViewer from '@/pages/follow_up_form/viewer.vue' @@ -26,6 +28,8 @@ import FollowUpFormViewer from '@/pages/follow_up_form/viewer.vue'
26 export default function registerComponents(Vue) { 28 export default function registerComponents(Vue) {
27 Vue.component('CustomerDevelopViewer', CustomerDevelopViewer) 29 Vue.component('CustomerDevelopViewer', CustomerDevelopViewer)
28 Vue.component('CustomerCreditViewer', CustomerCreditViewer) 30 Vue.component('CustomerCreditViewer', CustomerCreditViewer)
  31 + Vue.component('DomesticCustomerCreditViewer', DomesticCustomerCreditViewer)
  32 + Vue.component('ForeignTradeCreditViewer', ForeignTradeCreditViewer)
29 Vue.component('RetailViewer', RetailViewer) 33 Vue.component('RetailViewer', RetailViewer)
30 Vue.component('StandardContractViewer', StandardContractViewer) 34 Vue.component('StandardContractViewer', StandardContractViewer)
31 Vue.component('FormalContractViewer', FormalContractViewer) 35 Vue.component('FormalContractViewer', FormalContractViewer)
@@ -48,4 +52,4 @@ export default function registerComponents(Vue) { @@ -48,4 +52,4 @@ export default function registerComponents(Vue) {
48 Vue.component('DraftDistAgmtViewer', DraftDistAgmtViewer) 52 Vue.component('DraftDistAgmtViewer', DraftDistAgmtViewer)
49 Vue.component('ForeignDraftDistAgmtViewer', ForeignDraftDistAgmtViewer) 53 Vue.component('ForeignDraftDistAgmtViewer', ForeignDraftDistAgmtViewer)
50 Vue.component('AgmtViewer', AgmtViewer) 54 Vue.component('AgmtViewer', AgmtViewer)
51 -}  
  55 +}
@@ -14,6 +14,18 @@ export const getSysFlowComponentPath = (bizFlag) => { @@ -14,6 +14,18 @@ export const getSysFlowComponentPath = (bizFlag) => {
14 case 'CUSTOMER_CREDIT_EDIT': // 客户资信 14 case 'CUSTOMER_CREDIT_EDIT': // 客户资信
15 componentPath = 'CustomerCreditViewer'; // 客户资信-审批 15 componentPath = 'CustomerCreditViewer'; // 客户资信-审批
16 break; 16 break;
  17 + case 'CUSTOMER_CREDIT_IN': // 客户资信(内贸)
  18 + componentPath = 'DomesticCustomerCreditViewer'; // 客户资信(内贸)-审批详情
  19 + break;
  20 + case 'CUSTOMER_CREDIT_IN_EDIT': // 客户资信(内贸)
  21 + componentPath = 'DomesticCustomerCreditViewer'; // 客户资信(内贸)-审批
  22 + break;
  23 + case 'CUSTOMER_CREDIT_OUT': // 客户资信(外贸)
  24 + componentPath = 'ForeignTradeCreditViewer'; // 客户资信(外贸)-审批详情
  25 + break;
  26 + case 'CUSTOMER_CREDIT_OUT_EDIT': // 客户资信(外贸)
  27 + componentPath = 'ForeignTradeCreditViewer'; // 客户资信(外贸)-审批
  28 + break;
17 case 'STANDARD_CONTRACT': // 标准合同 29 case 'STANDARD_CONTRACT': // 标准合同
18 componentPath = 'StandardContractViewer'; // 标准合同-审批详情 30 componentPath = 'StandardContractViewer'; // 标准合同-审批详情
19 break; 31 break;
@@ -114,4 +126,4 @@ export const getSysFlowComponentPath = (bizFlag) => { @@ -114,4 +126,4 @@ export const getSysFlowComponentPath = (bizFlag) => {
114 break; 126 break;
115 } 127 }
116 return componentPath; 128 return componentPath;
117 -};  
  129 +};