viewer.vue 5.23 KB
<template>
	<view class="page">
		<scroll-view class="scroll" scroll-y>
			<view class="detail-page">
				<view class="section">
					<text class="row customer">{{ form.customer.name }}</text>
					<view class="row"><text class="label">生产厂</text><text class="value">{{ form.workshop.name }}</text>
					</view>
					<view class="row"><text class="label">科办</text><text class="value">{{ form.office.name }}</text>
					</view>
					<view class="row"><text class="label">客户类型</text><text
							class="value">{{ getDicName('ENTERPRISE_TYPE', form.customerType, customerTypeOptions) }}</text>
					</view>
					<view class="row"><text class="label">产品品种</text><text
							class="value">{{ form.productVariety.name }}</text></view>
					<view class="row"><text class="label">月用量</text><text class="value">{{ form.monthlyUsage }}</text>
					</view>
					<view class="row"><text class="label">目标量</text><text class="value">{{ form.targetQuantity }}</text>
					</view>
					<view class="row"><text class="label">行业</text><text class="value">{{ form.industry }}</text></view>
					<view class="row"><text class="label">创建日期</text><text class="value">{{ form.createTime  }}</text>
					</view>
				</view>
				<view class="section">
					<view class="row"><text class="label">牌号</text><text class="value">{{ form.mark }}</text></view>
					<view class="row"><text class="label">厚度</text><text class="value">{{ form.thickness }}</text>
					</view>
					<view class="row"><text class="label">宽度</text><text class="value">{{ form.width }}</text></view>
					<view class="row"><text class="label">材质要求</text><text
							class="value">{{ form.materialRequire }}</text></view>
					<view class="row"><text class="label">品质要求</text><text
							class="value">{{ form.qualityRequire }}</text></view>
					<view class="row"><text class="label">同行</text><text class="value">{{ form.peer }}</text></view>
				</view>
				<view class="section">
					<view class="row"><text class="label">核价模式</text><text class="value">{{ form.pricingMode }}</text>
					</view>
					<view class="row"><text class="label">结算天数</text><text class="value">{{ form.settleDays }}</text>
					</view>
				</view>
				<view class="section">
					<view class="row"><text class="label">责任人</text><text class="value">{{ form.chargeUserName }}</text>
					</view>
				</view>
			</view>
		</scroll-view>
        
	</view>
</template>

<script>
  import {
    getDetailApi
  } from '@/api/devManage.js'
	import {
		getDicName
	} from '@/utils/dic.js'
	import {
		getDicByCodeApi
	} from '@/api/base.js'
  

	export default {
		name: 'CustomerDevelopViewer',
    props: { id: { type: [String, Number], default: '' } },
    components: {
    },
      data() {
        return {
          form: {
			workshop: {},
			office: {},
			customer: {},
			customerType: '',
			chargeUserId: '',
			chargeUserIdName: '',
			productVariety: {},
			monthlyUsage: '',
			targetQuantity: '',
			industry: '',
			mark: '',
			thickness: '',
			width: '',
			materialRequire: '',
			qualityRequire: '',
			peer: '',
			pricingMode: '',
			settleDays: '',
			createTime: '',
            status: ''
          },
          customerTypeOptions: []
        }
      },
    computed: {
    },
		created() {
			this.loadCustomerTypeOptions()
		},
		watch: {
			id: {
				immediate: true,
				handler(val) {
					const v = (val !== undefined && val !== null) ? String(val) : ''
					if (v) this.loadDetail(v)
				}
			}
		},
		onShow() {
			uni.$on('dev_manage_detail_reload', this.onReload)
		},
		onUnload() {
			uni.$off('dev_manage_detail_reload', this.onReload)
		},
		
		methods: {
      onReload(payload) {
        const id = (payload && (payload.id || payload.code)) || this.form.id || this.form.code || ''
        if (id) this.loadDetail(id)
      },
			async loadDetail(id) {
				try {
					const res = await getDetailApi(id)
					console.log('getDetailApi res', res)
					const data = res.data || {};
					this.form = {
						...data
					}
				} catch (e) {
					console.error('loadDetail error', e)
				}
      },
      async loadCustomerTypeOptions() {
        try {
          const res = await getDicByCodeApi('ENTERPRISE_TYPE')
          const list = res.data || []
          this.customerTypeOptions = Array.isArray(list) ? list : []
        } catch (e) {
          this.customerTypeOptions = []
        }
      },
      getDicName: getDicName
      ,
      getFormValues() {
        const m = this.form || {}
        return JSON.parse(JSON.stringify(m))
      }
    }
  }
</script>

<style lang="scss" scoped>
	.page {
		display: flex;
		flex-direction: column;
		height: 100%;
	}

	.scroll {
		flex: 1;
	}

	.detail-page {
		background: #f3f3f3;
	}

	.section {
		padding: 32rpx;
		background: #fff;
		margin-bottom: 20rpx;
		position: relative;

		.row {
			display: flex;
			margin-bottom: 28rpx;

			&:last-child {
				margin-bottom: 0;
			}

			&.customer {
				font-size: 36rpx;
				font-weight: 600;
				color: rgba(0, 0, 0, 0.9);
			}

			.label {
				width: 120rpx;
				line-height: 32rpx;
				font-size: 28rpx;
				color: rgba(0, 0, 0, 0.6);
			}

			.value {
				flex: 1;
				line-height: 32rpx;
				font-size: 28rpx;
				color: rgba(0, 0, 0, 0.9);
				text-align: right;
			}
		}
	}
</style>