|
@@ -0,0 +1,253 @@
|
|
|
+<template>
|
|
|
+ <!-- 签约信息 -->
|
|
|
+ <el-form ref="form" :model="pageForm" :rules="rules" label-width="126px" class="edit-contract-info">
|
|
|
+ <template v-if="showXieYi">
|
|
|
+ <el-row :gutter="2">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="协议签订时间" prop="signTime">
|
|
|
+ <el-date-picker
|
|
|
+ :value="pageForm.signTime"
|
|
|
+ @input="onChangeFormItem('signTime', $event)"
|
|
|
+ value-format="timestamp"
|
|
|
+ type="date"
|
|
|
+ size="medium"
|
|
|
+ placeholder="请选择协议签订时间">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="协议编号" prop="signCode" v-if="showSingCode">
|
|
|
+ <el-input
|
|
|
+ :value="pageForm.signCode"
|
|
|
+ @input="onChangeFormItem('signCode', $event)"
|
|
|
+ placeholder="请输入协议编号"
|
|
|
+ size="medium"
|
|
|
+ maxlength="40"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <ElOnlineContractForm
|
|
|
+ ref="onlineContractFormRef"
|
|
|
+ v-if="showOnlineContractForm"
|
|
|
+ :showMore="showMore && showOnlineContractForm"
|
|
|
+ :buySubject="buySubject"
|
|
|
+ :orderEntName="companyName"
|
|
|
+ :e_contract_type="pageForm.e_contract_type"
|
|
|
+ @update:e_contract_type="onChangeFormItem('e_contract_type', $event)"
|
|
|
+ :e_contract_userA_type="pageForm.e_contract_userA_type"
|
|
|
+ @update:e_contract_userA_type="onChangeFormItem('e_contract_userA_type', $event)"
|
|
|
+ :e_contract_userA_name="pageForm.e_contract_userA_name"
|
|
|
+ @update:e_contract_userA_name="onChangeFormItem('e_contract_userA_name', $event)"
|
|
|
+ :e_contract_userA_contacts_name="pageForm.e_contract_userA_contacts_name"
|
|
|
+ @update:e_contract_userA_contacts_name="onChangeFormItem('e_contract_userA_contacts_name', $event)"
|
|
|
+ :e_contract_userA_contacts_tel="pageForm.e_contract_userA_contacts_tel"
|
|
|
+ @update:e_contract_userA_contacts_tel="onChangeFormItem('e_contract_userA_contacts_tel', $event)"
|
|
|
+ :e_contract_userA_contacts_address="pageForm.e_contract_userA_contacts_address"
|
|
|
+ @update:e_contract_userA_contacts_address="onChangeFormItem('e_contract_userA_contacts_address', $event)"
|
|
|
+ :e_contract_userB_contacts_name="pageForm.e_contract_userB_contacts_name"
|
|
|
+ @update:e_contract_userB_contacts_name="onChangeFormItem('e_contract_userB_contacts_name', $event)"
|
|
|
+ :e_contract_remark="pageForm.e_contract_remark"
|
|
|
+ @update:e_contract_remark="onChangeFormItem('e_contract_remark', $event)"
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-divider v-if="showOnlineContractForm">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ :icon="this.showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
|
|
|
+ @click="showMoreForm">更多信息</el-button>
|
|
|
+ </el-divider>
|
|
|
+ </template>
|
|
|
+ </el-form>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import ElOnlineContractForm from '@/views/create-order/components/product-info-submodule/ElOnlineContractForm'
|
|
|
+import { selectorVModelMixin } from '@/utils/mixins/selector-v-model'
|
|
|
+import { calcShowOnlineContractForm } from "@/views/create-order/hooks/utils"
|
|
|
+
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'EditContractInfo',
|
|
|
+ mixins: [selectorVModelMixin],
|
|
|
+ components: {
|
|
|
+ ElOnlineContractForm,
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ orderDetail: {
|
|
|
+ type: Object,
|
|
|
+ default: () => {
|
|
|
+ return {}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ contractFeedbackInfo: {
|
|
|
+ type: Object,
|
|
|
+ default: () => {
|
|
|
+ return {}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ showOnlineContractForm: false,
|
|
|
+ required: {
|
|
|
+ agreeStatus: true,
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ // agreeStatus: 1,
|
|
|
+ // signUnit: 'h01',
|
|
|
+ // signTime: '',
|
|
|
+ // signCode: '',
|
|
|
+ signRemark: '',
|
|
|
+ signType: '2',
|
|
|
+ },
|
|
|
+ showMoreXieYi: true,
|
|
|
+ pageForm: {
|
|
|
+ agreeStatus: 1,
|
|
|
+ signTime: '',
|
|
|
+ signCode: '',
|
|
|
+ signRemark: '',
|
|
|
+ signType: '2',
|
|
|
+ contract_archive_status: 1, // 电子协议归档状态 1归档 2未归档
|
|
|
+ e_contract_type: 1, // 电子协议类型
|
|
|
+ e_contract_userA_type: 1, // 协议甲方类型
|
|
|
+ e_contract_userA_name: '', // 协议甲方
|
|
|
+ e_contract_userA_contacts_name: '', // 协议甲方联系人
|
|
|
+ e_contract_userA_contacts_tel: '', // 协议甲方联系方式
|
|
|
+ e_contract_userA_contacts_address: '', // 协议甲方联系地址
|
|
|
+ e_contract_userB_contacts_name: '', // 协议乙方联系人
|
|
|
+ e_contract_remark: '', // 协议备注
|
|
|
+ },
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ buySubject() {
|
|
|
+ return this.pageForm.buySubject
|
|
|
+ },
|
|
|
+ companyName() {
|
|
|
+ return this.pageForm.companyName
|
|
|
+ },
|
|
|
+ showArchiveSignModule() {
|
|
|
+ return this.pageForm.contract_archive_status === 1
|
|
|
+ },
|
|
|
+ requiredList() {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ field: 'agreeStatus',
|
|
|
+ message: '协议状态为必填项', // 错误提示文案
|
|
|
+ rank: 1,
|
|
|
+ required: this.required.agreeStatus,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'signUnit',
|
|
|
+ message: '签约主体为必填项',
|
|
|
+ required: this.companyRequired,
|
|
|
+ }
|
|
|
+ ].filter(f => f.required)
|
|
|
+ },
|
|
|
+ rules() {
|
|
|
+ const companyRequired = this.companyRequired
|
|
|
+
|
|
|
+ return {
|
|
|
+ companyName: [
|
|
|
+ { required: companyRequired, message: '请输入公司名称', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ userTel: [
|
|
|
+ { required: true, message: '请输入联系人手机号', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ accountTel: [
|
|
|
+ { required: true, message: '请输入开通权益手机号', trigger: 'blur' },
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showXieYi() {
|
|
|
+ return this.orderDetail?.contractRes?.contract_status === 1
|
|
|
+ },
|
|
|
+ showMore() {
|
|
|
+ return this.showMoreXieYi
|
|
|
+ },
|
|
|
+ companyRequired() {
|
|
|
+ return this.showXieYi
|
|
|
+ },
|
|
|
+ showSingCode() {
|
|
|
+ return !this.showOnlineContractForm
|
|
|
+ },
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ companyRequired() {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.$refs.form.clearValidate()
|
|
|
+ }, 0)
|
|
|
+ },
|
|
|
+ buySubject() {
|
|
|
+ // 清空协议编号
|
|
|
+ this.onChangeFormItem('signCode', '')
|
|
|
+ },
|
|
|
+ // showXieYi: {
|
|
|
+ // immediate: true,
|
|
|
+ // handler(n) {
|
|
|
+ // if (n) {
|
|
|
+ // this.initSignTime()
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.initSignTime()
|
|
|
+ const { pageFormValue, productArr } = this.contractFeedbackInfo || {}
|
|
|
+ if (pageFormValue) {
|
|
|
+ for (const key in pageFormValue) {
|
|
|
+ this.setPageForm({ key, data: pageFormValue[key] })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.getOnlineContractFormShow(pageFormValue, productArr)
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 是否显示电子协议订单
|
|
|
+ getOnlineContractFormShow(pageForm, pList) {
|
|
|
+ return calcShowOnlineContractForm(pageForm, pList)
|
|
|
+ },
|
|
|
+ setPageForm({ key, data }) {
|
|
|
+ this.pageForm[key] = data
|
|
|
+ },
|
|
|
+ getState() {
|
|
|
+ return Object.assign({}, this.form)
|
|
|
+ },
|
|
|
+ setState(t) {
|
|
|
+ if (!t) return
|
|
|
+ Object.assign(this.form, t)
|
|
|
+ },
|
|
|
+ contractFile(val) {
|
|
|
+ this.onChangeFormItem('contract_file_url', val)
|
|
|
+ },
|
|
|
+ onRemoveUpload () {
|
|
|
+ this.onChangeFormItem('contract_file_url', '')
|
|
|
+ },
|
|
|
+ onChangeFormItem(key, e) {
|
|
|
+ this.pageForm[key] = e
|
|
|
+ },
|
|
|
+ initSignTime() {
|
|
|
+ // 初始化协议签订时间为当天
|
|
|
+ // this.form.signTime = Date.now()
|
|
|
+ this.onChangeFormItem('signTime', Date.now())
|
|
|
+ const {
|
|
|
+ contract_status
|
|
|
+ } = this.orderDetail?.contractRes || {}
|
|
|
+ const {
|
|
|
+ signing_subject
|
|
|
+ } = this.orderDetail?.orderData || {}
|
|
|
+ this.pageForm.signUnit = signing_subject || 'h01'
|
|
|
+ this.pageForm.agreeStatus = contract_status || 1
|
|
|
+
|
|
|
+ },
|
|
|
+ showMoreForm() {
|
|
|
+ this.showMoreXieYi = !this.showMoreXieYi
|
|
|
+ },
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+
|
|
|
+</style>
|