viewer.vue 4.77 KB
<template>
	<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 ? form.workshop.name :
				'' }}</text>
			</view>
			<view class="row"><text class="label">科办</text><text class="value">{{ form.office ? 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>
</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>
.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>