Commit 8953f6c9095a934f4d2b8c8ecb2f829a4e9382cc

Authored by 史婷婷
1 parent af5df90d

feat: 资信管理-审核暂存1

  1 +<template>
  2 + <view class="page">
  3 + <scroll-view class="scroll" scroll-y>
  4 + <view class="detail-page">
  5 + <view class="section">
  6 + <text class="row company">{{ form.companyName }}</text>
  7 + <view class="row"><text class="label">编号</text><text class="value">{{ form.serialNumber }}</text></view>
  8 + <view class="row"><text class="label">区域</text><text class="value">{{ form.region }}</text></view>
  9 + <view class="row"><text class="label">客户简称</text><text class="value">{{ form.customerShortName }}</text>
  10 + </view>
  11 + <view class="row"><text class="label">企业类型</text><text class="value">{{ getDicName('ENTERPRISE_TYPE',
  12 + form.enterpriseType, enterpriseTypeOptions) }}</text></view>
  13 + <view class="row"><text class="label">企业操作类型</text><text class="value">{{ form.enterpriseOperationType
  14 + }}</text></view>
  15 + <view class="row"><text class="label">登记日期</text><text class="value">{{ form.registerDate }}</text></view>
  16 + </view>
  17 +
  18 + <view class="title-header">
  19 + <image class="title-header_icon" src="/static/images/title.png" />
  20 + <span>基础资料</span>
  21 + </view>
  22 + <view class="section">
  23 + <view class="row"><text class="label">企业性质</text><text class="value">{{ form.companyNature }}</text></view>
  24 + <view class="row"><text class="label">注册资本</text><text class="value">{{ form.registeredCapital }} 万元</text>
  25 + </view>
  26 + <view class="row"><text class="label">账号</text><text class="value">{{ form.bankAccount }}</text></view>
  27 + <view class="row"><text class="label">开户行</text><text class="value">{{ form.bankName }}</text></view>
  28 + <view class="row"><text class="label">税号</text><text class="value">{{ form.taxNumber }}</text></view>
  29 + <view class="row"><text class="label">注册时间</text><text class="value">{{ form.registrationTime }}</text></view>
  30 + <view class="row"><text class="label">经营年限</text><text class="value">{{ form.businessYears }}</text></view>
  31 + <view class="row"><text class="label">单位地址</text><text class="value">{{ form.companyAddress }}</text></view>
  32 + <view class="row"><text class="label">经营范围</text><text class="value">{{ form.businessScope }}</text></view>
  33 + <view class="row"><text class="label">工商信息</text><text class="value act">{{ form.businessFileName }}</text>
  34 + </view>
  35 + <view class="row"><text class="label">股东信息</text><text class="value act">{{ form.shareholderFileName }}</text>
  36 + </view>
  37 + </view>
  38 +
  39 + <view class="mgb10">
  40 + <CorePersonnel mode="view" :options="genderOptions" :list="form.corePersonnelList" />
  41 + </view>
  42 +
  43 + <view class="title-header">
  44 + <image class="title-header_icon" src="/static/images/title.png" />
  45 + <span>资产经营情况</span>
  46 + </view>
  47 + <view class="section">
  48 + <view class="row"><text class="label">经营场地属性</text><text class="value">{{ form.businessProperty }}</text>
  49 + </view>
  50 + <view class="row"><text class="label">占地面积</text><text class="value">{{ form.landArea }} 平方米</text></view>
  51 + <view class="row"><text class="label">仓储条件</text><text class="value">{{ form.storageConditions }}</text>
  52 + </view>
  53 + <view class="row"><text class="label">员工人数</text><text class="value">{{ form.employeeCount }}</text></view>
  54 + <view class="row"><text class="label">设备属性</text><text class="value">{{ form.equipmentAttributes }}</text>
  55 + </view>
  56 + <view class="row"><text class="label">资产评估</text><text class="value">{{ form.assetEvaluation }}</text></view>
  57 + <view class="row"><text class="label">上年度销售额</text><text class="value">{{ form.lastYearSales }}</text></view>
  58 + <view class="row"><text class="label">月均销量</text><text class="value">{{ form.monthlyAvgSales }}</text></view>
  59 + <view class="row"><text class="label">销项发票所开品名与计量单位</text><text class="value">{{ form.invoiceItemUnit
  60 + }}</text></view>
  61 + <view class="row"><text class="label">认证证书</text><text class="value">{{ form.certificationCertificate
  62 + }}</text></view>
  63 + <view class="row"><text class="label">我司售与产品于经营范围是否匹配</text><text class="value">{{ form.productMatch }}</text>
  64 + </view>
  65 + <view class="row"><text class="label">主要客户</text><text class="value">{{ form.majorCustomers }}</text></view>
  66 + <view class="row"><text class="label">主营项目</text><text class="value">{{ form.mainProjects }}</text></view>
  67 + <view class="row"><text class="label">从事行业</text><text class="value">{{ form.industryInvolved }}</text></view>
  68 + <view class="row"><text class="label">在该行业中的经验</text><text class="value">{{ form.industryExperience }}</text>
  69 + </view>
  70 + <view class="row"><text class="label">是否与其他企业有经济纠纷 违规信息 拖欠员工薪资</text><text class="value">{{ form.hasDispute
  71 + }}</text></view>
  72 + </view>
  73 +
  74 + <view class="title-header">
  75 + <image class="title-header_icon" src="/static/images/title.png" />
  76 + <span>与我司合作</span>
  77 + </view>
  78 + <view class="section">
  79 + <view class="row"><text class="label">与我司合作时间</text><text class="value">{{ form.cooperationStartDate }}</text>
  80 + </view>
  81 + <view class="row"><text class="label">月均操作量</text><text class="value">{{ form.monthlyAvgVolume }}</text>
  82 + </view>
  83 + <view class="row"><text class="label">是否口头协议操作</text><text class="value">{{ form.isVerbalAgreement }}</text>
  84 + </view>
  85 + <view class="row"><text class="label">是否签订其他协议</text><text class="value">{{ form.otherAgreements }}</text>
  86 + </view>
  87 + <view class="row"><text class="label">与我司操作是否签订长年合同</text><text class="value">{{ form.hasLongTermContract
  88 + }}</text></view>
  89 + <view class="row"><text class="label">合同类型</text><text class="value">{{ form.contractType }}</text></view>
  90 + <view class="row"><text class="label">是否有过中断及中断原因</text><text class="value">{{ form.hasInterruption }}</text>
  91 + </view>
  92 + </view>
  93 +
  94 + <view class="title-header">
  95 + <image class="title-header_icon" src="/static/images/title.png" />
  96 + <span>办事处意见</span>
  97 + </view>
  98 + <view class="section">
  99 + <view class="row"><text class="label">建议客户分类</text>
  100 + <text class="value">
  101 + <text
  102 + :class="[form.suggestedCategory ? 'category' : '', getCategoryClass(getDicName('CUSTOMER_CATEGORY', form.suggestedCategory, categoryOptions))]">{{
  103 + getDicName('CUSTOMER_CATEGORY', form.suggestedCategory, categoryOptions) }}</text>
  104 + </text>
  105 + </view>
  106 + <view class="row"><text class="label">授信额度</text><text class="value">{{ form.creditLimit }} 万元</text></view>
  107 + <view class="row"><text class="label">结算期限</text><text class="value">{{ form.settlementPeriod }}</text></view>
  108 + <view class="row"><text class="label">加工操作方案</text><text class="value">{{ form.materialSupplyPlan }}</text>
  109 + </view>
  110 + <view class="row"><text class="label">调查人</text><text class="value">{{ form.investigatorName }}</text></view>
  111 + <view class="row"><text class="label">审核主管</text><text class="value">{{ form.supervisorReviewName }}</text>
  112 + </view>
  113 + </view>
  114 +
  115 + <view class="title-header">
  116 + <image class="title-header_icon" src="/static/images/title.png" />
  117 + <span>职能核对</span>
  118 + </view>
  119 + <view class="section">
  120 + <view class="row"><text class="label">年度总销量</text><text class="value">{{ form.annualTotalSales }}</text>
  121 + </view>
  122 + <view class="row"><text class="label">主要行业</text><text class="value">{{ form.mainIndustry }}</text></view>
  123 + <view class="row"><text class="label">年度款料概况</text><text class="value">{{ form.annualMaterialOverview
  124 + }}</text></view>
  125 + </view>
  126 +
  127 + <view class="title-header">
  128 + <image class="title-header_icon" src="/static/images/title.png" />
  129 + <span>公司评审</span>
  130 + </view>
  131 + <view class="section">
  132 + <view class="row"><text class="label">客户分类</text>
  133 + <text class="value">
  134 + <text
  135 + :class="[form.companySuggestedCategory ? 'category' : '', getCategoryClass(getDicName('CUSTOMER_CATEGORY', form.companySuggestedCategory, categoryOptions))]">{{
  136 + getDicName('CUSTOMER_CATEGORY', form.companySuggestedCategory, categoryOptions) }}</text>
  137 + </text>
  138 + </view>
  139 + <view class="row"><text class="label">授信额度</text><text class="value">{{ form.companyCreditLimit }} 万元</text>
  140 + </view>
  141 + <view class="row"><text class="label">结算期限</text><text class="value">{{ form.companySettlementPeriod }}</text>
  142 + </view>
  143 + <view class="row"><text class="label">加工操作方案</text><text class="value">{{ form.companyMaterialSupplyPlan
  144 + }}</text></view>
  145 + </view>
  146 +
  147 + <view class="title-header">
  148 + <image class="title-header_icon" src="/static/images/title.png" />
  149 + <span>变更记录</span>
  150 + </view>
  151 + <view class="section">
  152 + <view class="history-header">
  153 + <text class="col col1">序号</text>
  154 + <text class="col col2">变更时间</text>
  155 + <text class="col col3">操作</text>
  156 + </view>
  157 + <view v-for="(h, i) in historyList" :key="(h && (h.id || h.code)) || i" class="history-row">
  158 + <text class="col col1">{{ i + 1 }}</text>
  159 + <text class="col col2">{{ h.createTime || '' }}</text>
  160 + <text class="col col3 link" @click="onViewHistory(h)">查看</text>
  161 + </view>
  162 + </view>
  163 + </view>
  164 + </scroll-view>
  165 + </view>
  166 +</template>
  167 +
  168 +<script>
  169 +import { getExamineById, getByIdExamineCustomerCreditHistoryList } from '@/api/credit_manage.js'
  170 +import { getDicName } from '@/utils/dic.js'
  171 +import { getDicByCodeApi } from '@/api/base.js'
  172 +import CorePersonnel from './corePersonnel.vue'
  173 +
  174 +export default {
  175 + name: 'CustomerCreditApprove',
  176 + props: { id: { type: [String, Number], default: '' } },
  177 + components: { CorePersonnel },
  178 + data() {
  179 + return {
  180 + form: {},
  181 + enterpriseTypeOptions: [],
  182 + genderOptions: [],
  183 + categoryOptions: [],
  184 + historyList: []
  185 + }
  186 + },
  187 + created() {
  188 + this.loadEnterpriseTypeOptions()
  189 + this.loadGenderOptions()
  190 + this.loadCategoryOptions()
  191 + },
  192 + watch: {
  193 + id: {
  194 + immediate: true,
  195 + handler(val) {
  196 + const v = (val !== undefined && val !== null) ? String(val) : ''
  197 + if (v) this.loadDetail(v)
  198 + }
  199 + }
  200 + },
  201 + methods: {
  202 + async loadDetail(id) {
  203 + try {
  204 + const res = await getExamineById(id)
  205 + const data = res.data || {}
  206 + this.form = { ...data }
  207 + const cid = this.form.id || this.form.code || id
  208 + if (cid) this.loadHistoryList(cid)
  209 + } catch (e) {
  210 + this.form = {}
  211 + }
  212 + },
  213 + async loadEnterpriseTypeOptions() {
  214 + try {
  215 + const res = await getDicByCodeApi('ENTERPRISE_TYPE')
  216 + const list = res.data || []
  217 + this.enterpriseTypeOptions = Array.isArray(list) ? list : []
  218 + } catch (e) {
  219 + this.enterpriseTypeOptions = []
  220 + }
  221 + },
  222 + async loadGenderOptions() {
  223 + try {
  224 + const res = await getDicByCodeApi('GENDER_TYPE')
  225 + const list = res.data || []
  226 + this.genderOptions = Array.isArray(list) ? list : []
  227 + } catch (e) {
  228 + this.genderOptions = []
  229 + }
  230 + },
  231 + async loadCategoryOptions() {
  232 + try {
  233 + const res = await getDicByCodeApi('CUSTOMER_CATEGORY')
  234 + const list = res.data || []
  235 + this.categoryOptions = Array.isArray(list) ? list : []
  236 + } catch (e) {
  237 + this.categoryOptions = []
  238 + }
  239 + },
  240 + async loadHistoryList(creditId) {
  241 + try {
  242 + const res = await getByIdExamineCustomerCreditHistoryList(creditId)
  243 + const _data = res.data || []
  244 + this.historyList = Array.isArray(_data) ? _data : []
  245 + } catch (e) {
  246 + this.historyList = []
  247 + }
  248 + },
  249 + onViewHistory(item) {
  250 + const id = item && (item.id)
  251 + if (!id) return
  252 + const query = '?id=' + encodeURIComponent(id)
  253 + uni.navigateTo({ url: '/pages/credit_manage/history_detail' + query })
  254 + },
  255 + getDicName,
  256 + getCategoryClass(categoryName) {
  257 + if (!categoryName) return ''
  258 + if (categoryName.includes('A') || categoryName.includes('a')) {
  259 + return 'category_A'
  260 + } else if (categoryName.includes('B') || categoryName.includes('b')) {
  261 + return 'category_B'
  262 + } else if (categoryName.includes('C') || categoryName.includes('c')) {
  263 + return 'category_C'
  264 + } else if (categoryName.includes('D') || categoryName.includes('d')) {
  265 + return 'category_D'
  266 + }
  267 + },
  268 + getFormValues() {
  269 + const m = this.form || {}
  270 + return JSON.parse(JSON.stringify(m))
  271 + }
  272 + }
  273 +}
  274 +</script>
  275 +
  276 +<style lang="scss" scoped>
  277 +.page {
  278 + display: flex;
  279 + flex-direction: column;
  280 + height: 100%;
  281 +}
  282 +
  283 +.scroll {
  284 + flex: 1;
  285 + padding-bottom: 144rpx;
  286 +}
  287 +
  288 +.detail-page {
  289 + background: #f3f3f3;
  290 +}
  291 +
  292 +.section {
  293 + padding: 32rpx;
  294 + background: #fff;
  295 + margin-bottom: 20rpx;
  296 + position: relative;
  297 +
  298 + .row {
  299 + display: flex;
  300 + margin-bottom: 28rpx;
  301 +
  302 + &:last-child {
  303 + margin-bottom: 0;
  304 + }
  305 +
  306 + &.company {
  307 + font-size: 36rpx;
  308 + font-weight: 600;
  309 + color: rgba(0, 0, 0, 0.9);
  310 + }
  311 +
  312 + .label {
  313 + max-width: 420rpx;
  314 + line-height: 32rpx;
  315 + font-size: 28rpx;
  316 + color: rgba(0, 0, 0, 0.6);
  317 + }
  318 +
  319 + .value {
  320 + flex: 1;
  321 + line-height: 32rpx;
  322 + font-size: 28rpx;
  323 + color: rgba(0, 0, 0, 0.9);
  324 + text-align: right;
  325 +
  326 + .category {
  327 + display: inline-block;
  328 + padding: 4rpx 12rpx;
  329 + border-radius: 6rpx;
  330 + font-size: 24rpx;
  331 + width: auto;
  332 +
  333 + &.category_A {
  334 + background: #FFF0ED;
  335 + color: #D54941;
  336 + }
  337 +
  338 + &.category_B {
  339 + background: #FFF1E9;
  340 + color: #E37318;
  341 + }
  342 +
  343 + &.category_C {
  344 + background: #F2F3FF;
  345 + color: $theme-primary;
  346 + }
  347 +
  348 + &.category_D {
  349 + background: #E3F9E9;
  350 + color: #2BA471;
  351 + }
  352 + }
  353 + }
  354 +
  355 + .act {
  356 + color: $theme-primary;
  357 + }
  358 + }
  359 +}
  360 +
  361 +.title-header {
  362 + background-color: #fff;
  363 + display: flex;
  364 + align-items: center;
  365 + padding: 32rpx 32rpx 22rpx;
  366 + border-bottom: 1rpx dashed #f0f0f0;
  367 +
  368 + &_icon {
  369 + width: 32rpx;
  370 + height: 28rpx;
  371 + margin-right: 16rpx;
  372 + }
  373 +
  374 + span {
  375 + color: rgba(0, 0, 0, 0.9);
  376 + font-size: 32rpx;
  377 + line-height: 44rpx;
  378 + font-weight: 600;
  379 + }
  380 +}
  381 +
  382 +.history-header {
  383 + display: flex;
  384 + margin-bottom: 20rpx;
  385 + font-size: 28rpx;
  386 + color: rgba(0, 0, 0, 0.6);
  387 +
  388 + .col1 {
  389 + width: 120rpx;
  390 + }
  391 +
  392 + .col2 {
  393 + flex: 1;
  394 + text-align: center;
  395 + }
  396 +
  397 + .col3 {
  398 + width: 160rpx;
  399 + text-align: right;
  400 + }
  401 +}
  402 +
  403 +.history-row {
  404 + display: flex;
  405 + align-items: center;
  406 + margin-bottom: 16rpx;
  407 + font-size: 28rpx;
  408 +
  409 + .col1 {
  410 + width: 120rpx;
  411 + }
  412 +
  413 + .col2 {
  414 + flex: 1;
  415 + text-align: center;
  416 + }
  417 +
  418 + .col3 {
  419 + width: 160rpx;
  420 + text-align: right;
  421 + }
  422 +
  423 + .link {
  424 + color: $theme-primary;
  425 + }
  426 +}
  427 +
  428 +.mgb10 {
  429 + margin-bottom: 20rpx;
  430 +}
  431 +</style>
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 CustomerCreditApprove from '@/pages/credit_manage/approve.vue'
3 4
4 export default function registerComponents(Vue) { 5 export default function registerComponents(Vue) {
5 Vue.component('CustomerDevelopViewer', CustomerDevelopViewer) 6 Vue.component('CustomerDevelopViewer', CustomerDevelopViewer)
6 Vue.component('CustomerCreditViewer', CustomerCreditViewer) 7 Vue.component('CustomerCreditViewer', CustomerCreditViewer)
  8 + Vue.component('CustomerCreditApprove', CustomerCreditApprove)
7 } 9 }