pull/781/head
parent
f6c7154f1f
commit
5614e06f43
|
|
@ -108,7 +108,7 @@
|
||||||
<ContracExtension ref="contractExtensionFormRef" v-if="formData.changeItem == 3" :data="formData" />
|
<ContracExtension ref="contractExtensionFormRef" v-if="formData.changeItem == 3" :data="formData" />
|
||||||
<ContractStop ref="contractStopFormRef" :formData="formData" v-if="formData.changeItem == 4" />
|
<ContractStop ref="contractStopFormRef" :formData="formData" v-if="formData.changeItem == 4" />
|
||||||
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
||||||
<ContractForm ref="contractFormRef" :type="1" :formData="formData" v-if="formData.changeItem == 6" />
|
<ContractForm ref="contractFormRef" :type="1" :changeType="true" v-if="formData.changeItem == 6" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div style="text-align: right">
|
<div style="text-align: right">
|
||||||
|
|
|
||||||
|
|
@ -16,17 +16,13 @@
|
||||||
<el-input v-model="formData.name" placeholder="请输入合同名称" />
|
<el-input v-model="formData.name" placeholder="请输入合同名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" v-if="formType">
|
|
||||||
<el-form-item label="合同编号" prop="no">
|
|
||||||
<el-input disabled v-model="formData.no" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.customerId"
|
v-model="formData.customerId"
|
||||||
placeholder="请选择客户名称"
|
placeholder="请选择客户名称"
|
||||||
:disabled="formType"
|
:disabled="!!formType"
|
||||||
@change="onCustomerChange"
|
@change="onCustomerChange"
|
||||||
class="w-1/1"
|
class="w-1/1"
|
||||||
>
|
>
|
||||||
|
|
@ -39,6 +35,11 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8" v-if="formType">
|
||||||
|
<el-form-item label="合同编号" prop="no">
|
||||||
|
<el-input disabled v-model="formData.no" placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="报价单编号" prop="quotationId">
|
<el-form-item label="报价单编号" prop="quotationId">
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -510,6 +511,7 @@ const { proxy }: any = getCurrentInstance();
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
id: propTypes.number.def(undefined),
|
id: propTypes.number.def(undefined),
|
||||||
type: propTypes.number.def(undefined),
|
type: propTypes.number.def(undefined),
|
||||||
|
changeType: propTypes.number.def(undefined),//合同变更不回显数据
|
||||||
})
|
})
|
||||||
const templateOptions = ref([])
|
const templateOptions = ref([])
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
|
|
@ -609,6 +611,7 @@ const open = async (type: string) => {
|
||||||
// formLoading.value = true
|
// formLoading.value = true
|
||||||
try {
|
try {
|
||||||
formData.value = await ContractApi.getContract(type)
|
formData.value = await ContractApi.getContract(type)
|
||||||
|
console.log('%csrc/views/crm/contract/ContractForm.vue:614 object', 'color: #007acc;', formData.value);
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
|
|
@ -789,7 +792,7 @@ const onCustomerChange = async (customerId: string) => {
|
||||||
formData.value.partAddress = customerRes.partAddress;
|
formData.value.partAddress = customerRes.partAddress;
|
||||||
formData.value.listingStatus = customerRes.listingStatus;
|
formData.value.listingStatus = customerRes.listingStatus;
|
||||||
formData.value.legalPersonName = customerRes.legalPersonName;
|
formData.value.legalPersonName = customerRes.legalPersonName;
|
||||||
formData.value.creditCode = customerRes.creditCode;
|
formData.value.creditNo = customerRes.creditNo;
|
||||||
formData.value.regType = customerRes.regType;
|
formData.value.regType = customerRes.regType;
|
||||||
formData.value.financingInfo = customerRes.financingInfo;
|
formData.value.financingInfo = customerRes.financingInfo;
|
||||||
formData.value.socialEmployeeNum = customerRes.socialEmployeeNum;
|
formData.value.socialEmployeeNum = customerRes.socialEmployeeNum;
|
||||||
|
|
@ -829,10 +832,12 @@ const getContactOptions = computed(() =>
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
formType.value = props.id || route.query.id
|
if(!props.changeType) {
|
||||||
|
console.log('%csrc/views/crm/contract/ContractForm.vue:835 props.id', 'color: #007acc;', props.id);
|
||||||
if (formType.value) await open(formType.value)
|
formType.value = props.id || route.query.id
|
||||||
|
|
||||||
|
if (formType.value) await open(formType.value)
|
||||||
|
}
|
||||||
// 获得客户列表
|
// 获得客户列表
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getCustomerSimpleList()
|
||||||
// 获得用户列表
|
// 获得用户列表
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,13 @@
|
||||||
v-model="formData.terminationDate"
|
v-model="formData.terminationDate"
|
||||||
type="date"
|
type="date"
|
||||||
:disabled="!!type"
|
:disabled="!!type"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="x"
|
||||||
placeholder="请选择终止日期"
|
placeholder="请选择终止日期"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="16">
|
||||||
<el-form-item label="终止原因" prop="terminationReason">
|
<el-form-item label="终止原因" prop="terminationReason">
|
||||||
<el-radio-group v-model="formData.terminationReason" :disabled="!!type">
|
<el-radio-group v-model="formData.terminationReason" :disabled="!!type">
|
||||||
<el-radio :label="1">合同到期</el-radio>
|
<el-radio :label="1">合同到期</el-radio>
|
||||||
|
|
@ -74,7 +74,7 @@ const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
terminationDate: undefined,
|
terminationDate: new Date(),
|
||||||
terminationReason: undefined,
|
terminationReason: undefined,
|
||||||
note: undefined,
|
note: undefined,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="调整金额(元)" prop="changeAmount">
|
<el-form-item label="调整金额(元)" prop="changeAmount">
|
||||||
<el-input v-model="formData.changeAmount" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" :disabled="!!type" placeholder="请输入调整金额(元)" @input="onChangeAmount" />
|
<el-input v-model="formData.changeAmount" :disabled="type" oninput="value=value.match(/^\d+(?:\.\d{0,2})?/)" placeholder="请输入调整金额(元)" @input="onChangeAmount" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
|
@ -154,7 +154,7 @@
|
||||||
v-model="formData.changeAmountDeadline"
|
v-model="formData.changeAmountDeadline"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
type="date"
|
type="date"
|
||||||
:disabled="!!type"
|
:disabled="type"
|
||||||
placeholder="请选择调整金额截止日期"
|
placeholder="请选择调整金额截止日期"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
|
|
@ -262,7 +262,8 @@ const subTabsName = ref('quotationProduct')
|
||||||
const quotationProductFormRef = ref()
|
const quotationProductFormRef = ref()
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
data: undefined
|
data: undefined,
|
||||||
|
type: undefined
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="上市情况" prop="customerId">
|
<el-form-item label="上市情况" prop="customerId">
|
||||||
<el-select v-model="formData.customerId" :disabled="!!type" placeholder="请选择上市情况" @change="onCustomerChange">
|
<el-select v-model="formData.customerId" :disabled="!!type" placeholder="请选择上市情况" @change="onCustomerChange">
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -38,13 +38,13 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="合作类型" prop="cooperationType">
|
<el-form-item label="合作类型" prop="cooperationType">
|
||||||
<el-input v-model="formData.cooperationType" disabled />
|
<el-input v-model="formData.cooperationType" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="融资信息" prop="companyType">
|
<el-form-item label="融资信息" prop="companyType">
|
||||||
<el-select v-model="formData.customerId" :disabled="!!type" placeholder="请选择融资信息" @change="onCustomerChange">
|
<el-select v-model="formData.customerId" :disabled="!!type" placeholder="请选择融资信息" @change="onCustomerChange">
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -55,63 +55,63 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="实缴资金" prop="paidInCapital">
|
<el-form-item label="实缴资金" prop="paidInCapital">
|
||||||
<el-input v-model="formData.paidInCapital" disabled />
|
<el-input v-model="formData.actualCapital" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="参保人数" prop="insuredCount">
|
<el-form-item label="参保人数" prop="insuredCount">
|
||||||
<el-input v-model="formData.insuredCount" disabled />
|
<el-input v-model="formData.socialEmployeeNum" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="被告记录" prop="defendantRecord">
|
<el-form-item label="被告记录" prop="defendantRecord">
|
||||||
<el-radio-group v-model="formData.defendantRecord" :disabled="true">
|
<el-radio-group v-model="formData.defendantRecord" :disabled="true">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="经营异常" prop="businessAbnormal">
|
<el-form-item label="经营异常" prop="abnormalService">
|
||||||
<el-radio-group v-model="formData.businessAbnormal" :disabled="true">
|
<el-radio-group v-model="formData.abnormalService" :disabled="true">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="股权出质" prop="equityPledge">
|
<el-form-item label="股权出质" prop="equityPledge">
|
||||||
<el-radio-group v-model="formData.equityPledge" :disabled="true">
|
<el-radio-group v-model="formData.equityPledge" :disabled="true">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="失信记录" prop="dishonestRecord">
|
<el-form-item label="失信记录" prop="dishonestyRecord">
|
||||||
<el-radio-group v-model="formData.dishonestRecord" :disabled="true">
|
<el-radio-group v-model="formData.dishonestyRecord" :disabled="true">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="融资记录" prop="financingRecord">
|
<el-form-item label="融资记录" prop="financeRecord">
|
||||||
<el-radio-group v-model="formData.financingRecord" :disabled="true">
|
<el-radio-group v-model="formData.financeRecord" :disabled="true">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="被执行记录" prop="enforcementRecord">
|
<el-form-item label="被执行记录" prop="judgmentRecord">
|
||||||
<el-radio-group v-model="formData.enforcementRecord" :disabled="true">
|
<el-radio-group v-model="formData.judgmentRecord" :disabled="true">
|
||||||
<el-radio :label="true">是</el-radio>
|
<el-radio :label="1">是</el-radio>
|
||||||
<el-radio :label="false">否</el-radio>
|
<el-radio :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -120,12 +120,12 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="协议截止日" prop="agreementDeadline">
|
<el-form-item label="协议截止日" prop="endTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
:disabled="!!type"
|
:disabled="!!type"
|
||||||
v-model="formData.agreementDeadline"
|
v-model="formData.endTime"
|
||||||
type="date"
|
type="date"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="x"
|
||||||
placeholder="请选择协议截止日"
|
placeholder="请选择协议截止日"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.customerId"
|
v-model="formData.customerId"
|
||||||
disabled=""
|
|
||||||
placeholder="请选择客户"
|
placeholder="请选择客户"
|
||||||
|
disabled
|
||||||
class="w-1/1"
|
class="w-1/1"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
<el-form-item label="合同状态" prop="quotationId">
|
<el-form-item label="合同状态" prop="quotationId">
|
||||||
<el-select v-model="formData.auditStatus" disabled clearable placeholder="请选择合同状态">
|
<el-select v-model="formData.auditStatus" disabled clearable placeholder="请选择合同状态">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_AUDIT_STATUS)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
:value="dict.value"
|
:value="dict.value"
|
||||||
|
|
@ -72,47 +72,45 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="变更项目" prop="endTime">
|
<el-form-item label="变更项目" prop="endTime">
|
||||||
<el-radio-group v-model="formData.radio" disabled>
|
<el-radio-group v-model="formData.changeItem" disabled >
|
||||||
<el-radio :value="1">额度</el-radio>
|
<el-radio :value="1">额度</el-radio>
|
||||||
<el-radio :value="2">授权人</el-radio>
|
<el-radio :value="2">授权人</el-radio>
|
||||||
<el-radio :value="3">延期</el-radio>
|
<el-radio :value="3">延期</el-radio>
|
||||||
<el-radio :value="4">终止</el-radio>
|
<el-radio :value="4">终止</el-radio>
|
||||||
<el-radio :value="5">甲方关联单位</el-radio>
|
<el-radio :value="5">关联</el-radio>
|
||||||
<el-radio :value="6">重签</el-radio>
|
<el-radio :value="6">重签</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
<!-- 子表的表单 -->
|
<!-- 子表的表单 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractChangeLimit
|
<ContractChangeLimit
|
||||||
v-if="formData.radio == 1"
|
v-if="formData.changeItem == 1"
|
||||||
:type="1"
|
|
||||||
ref="limitFormRef"
|
ref="limitFormRef"
|
||||||
:formData="formData"
|
:data="formData"
|
||||||
:disabled="disabled"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
<div v-if="formData.radio == 2">
|
<div v-if="formData.changeItem == 2">
|
||||||
<ContentWrap style="border: none">
|
<ContentWrap style="border: none">
|
||||||
甲方现授权人信息
|
甲方现授权人信息
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContractAuthPersonInfo
|
<ContractAuthPersonInfo
|
||||||
|
:disabled="true"
|
||||||
|
|
||||||
ref="personDataRef"
|
ref="personDataRef"
|
||||||
:products="formData.contractAAuthorizedPersons"
|
:products="formData.contractAAuthorizedPersons"
|
||||||
/>
|
/>
|
||||||
<!-- <ContentWrap style="border: none">
|
|
||||||
甲方授权人
|
|
||||||
</ContentWrap>
|
|
||||||
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef" :contract-id="formData.id" /> -->
|
|
||||||
</div>
|
</div>
|
||||||
<ContracExtension ref="contractExtensionFormRef" :type="1" :formData="formData" v-if="formData.radio == 3" />
|
<ContracExtension ref="contractExtensionFormRef" v-if="formData.changeItem == 3" :disabled="true" :data="formData" />
|
||||||
<ContractStop ref="contractStopFormRef" :type="1" :formData="formData" v-if="formData.radio == 4" />
|
<ContractStop ref="contractStopFormRef" :formData="formData" :disabled="true" v-if="formData.changeItem == 4" />
|
||||||
<ContractAAuthorizedCompanyForm :type="1" ref="contractAAuthorizedCompanyFormRef1" v-if="formData.radio == 5" :contract-id="formData.id" />
|
<ContractAAuthorizedCompanyForm ref="contractAAuthorizedCompanyFormRef1" :type="true" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
||||||
<ContractForm ref="contractFormRef" :type="1" :id="formType" :formData="formData" v-if="formData.radio == 6" />
|
<ContractForm ref="contractFormRef" :type="1" :id="formData.id" v-if="formData.changeItem == 6" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
@ -130,6 +128,7 @@ import ContracExtension from '@/views/crm/contract/components/ContractExtension.
|
||||||
import ContractStop from '@/views/crm/contract/components/ContracStop.vue'
|
import ContractStop from '@/views/crm/contract/components/ContracStop.vue'
|
||||||
import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
|
import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
|
||||||
import ContractAAuthorizedCompanyForm from '../components/ContractAAuthorizedCompanyForm.vue'
|
import ContractAAuthorizedCompanyForm from '../components/ContractAAuthorizedCompanyForm.vue'
|
||||||
|
import ContractBAuthorizedPersonForm from '../components/ContractAAuthorizedPersonForm.vue'
|
||||||
import ContractForm from './ContractDetail.vue'
|
import ContractForm from './ContractDetail.vue'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
|
|
||||||
|
|
@ -137,7 +136,7 @@ const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
const { proxy }: any = getCurrentInstance();
|
const { proxy }: any = getCurrentInstance();
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
id: propTypes.number.def(undefined)
|
id: propTypes.number.def(undefined),
|
||||||
})
|
})
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
|
|
@ -180,6 +179,7 @@ const formData = ref({
|
||||||
partnerCompanyId: undefined,
|
partnerCompanyId: undefined,
|
||||||
deptId: undefined,
|
deptId: undefined,
|
||||||
quotationTimes: undefined,
|
quotationTimes: undefined,
|
||||||
|
changeItem: 1,
|
||||||
products: []
|
products: []
|
||||||
})
|
})
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
|
|
@ -196,7 +196,7 @@ const contactList = ref<ContactApi.ContactVO[]>([])
|
||||||
|
|
||||||
/** 子表的表单 */
|
/** 子表的表单 */
|
||||||
const subTabsName = ref('limit')
|
const subTabsName = ref('limit')
|
||||||
const contractAAuthorizedCompanyFormRef = ref()
|
const ContractBAuthorizedPersonFormRef = ref()
|
||||||
const contractAAuthorizedCompanyFormRef1 = ref()
|
const contractAAuthorizedCompanyFormRef1 = ref()
|
||||||
const limitFormRef = ref()
|
const limitFormRef = ref()
|
||||||
const contractExtensionFormRef = ref()
|
const contractExtensionFormRef = ref()
|
||||||
|
|
@ -222,7 +222,14 @@ const open = async (type: string) => {
|
||||||
if (type) {
|
if (type) {
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
try {
|
||||||
formData.value = await ContractApi.getChangeContract(type)
|
// formData.value = Object.assign(formData.value, data)
|
||||||
|
let data = await ContractApi.getChangeContract(type)
|
||||||
|
formData.value = data.contractDetail
|
||||||
|
formData.value.changeItem = data.changeItem
|
||||||
|
formData.value.changeAmount = data.changeAmount
|
||||||
|
formData.value.afterAmount = data.afterAmount
|
||||||
|
formData.value.changeAmountDeadline = data.changeAmountDeadline
|
||||||
|
formData.value.note = data.note
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
|
|
@ -245,10 +252,39 @@ const submitForm = async () => {
|
||||||
// const Authalid1 = await contractAAuthorizedCompanyFormRef1.value.validate()
|
// const Authalid1 = await contractAAuthorizedCompanyFormRef1.value.validate()
|
||||||
// if (!Authalid1) return
|
// if (!Authalid1) return
|
||||||
|
|
||||||
// const limitValid = await limitFormRef.value.validate()
|
if(ContractBAuthorizedPersonFormRef.value) {
|
||||||
// if (!limitValid) return
|
const Authalid = await ContractBAuthorizedPersonFormRef.value.validate()
|
||||||
// const extensionValid = await contractExtensionFormRef.value.validate()
|
if (!Authalid) return
|
||||||
// if (!extensionValid) return
|
}
|
||||||
|
|
||||||
|
if(contractAAuthorizedCompanyFormRef1.value) {
|
||||||
|
const Authalid1 = await contractAAuthorizedCompanyFormRef1.value.validate()
|
||||||
|
if (!Authalid1) return
|
||||||
|
}
|
||||||
|
|
||||||
|
if(limitFormRef.value) {
|
||||||
|
const limitValid = await limitFormRef.value.validate()
|
||||||
|
if (!limitValid) return
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contractExtensionFormRef.value) {
|
||||||
|
const extensionValid = await contractExtensionFormRef.value.validate()
|
||||||
|
if (!extensionValid) return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contractStopFormRef.value) {
|
||||||
|
const stopValid = await contractStopFormRef.value.validate()
|
||||||
|
if (!stopValid) return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contractFormRef.value) {
|
||||||
|
const contractValid = await contractFormRef.value.validate()
|
||||||
|
if (!contractValid) return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// const stopValid = await contractStopFormRef.value.validate()
|
// const stopValid = await contractStopFormRef.value.validate()
|
||||||
// if (!stopValid) return
|
// if (!stopValid) return
|
||||||
|
|
@ -257,19 +293,49 @@ const submitForm = async () => {
|
||||||
// if (!contractValid) return
|
// if (!contractValid) return
|
||||||
|
|
||||||
|
|
||||||
// console.log('%csrc/views/crm/contract/ContractChange.vue:247 123', 'color: #007acc;', extensionValid,123);
|
|
||||||
// return
|
|
||||||
|
|
||||||
// 提交请求
|
// 提交请求
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
try {
|
||||||
const data = unref(JSON.parse(JSON.stringify(formData.value))) as unknown as ContractApi.ContractVO
|
const data = unref(JSON.parse(JSON.stringify(formData.value))) as unknown as ContractApi.ContractVO
|
||||||
// 拼接子表的数据
|
// 拼接子表的数据
|
||||||
data.contractAAuthorizedCompanys = limitFormRef.value.getData()
|
let proChangeObj = {
|
||||||
data.contractAAuthorizedCompanys = contractExtensionFormRef.value.getData()
|
1: limitFormRef,
|
||||||
data.contractAAuthorizedCompanys = contractStopFormRef.value.getData()
|
2: ContractBAuthorizedPersonFormRef,
|
||||||
data.contractAAuthorizedCompanys = contractFormRef.value.getData()
|
3: contractExtensionFormRef,
|
||||||
data.contractAAuthorizedCompanys = contractAAuthorizedCompanyFormRef.value.getData()
|
4: contractStopFormRef,
|
||||||
|
5: contractAAuthorizedCompanyFormRef1,
|
||||||
|
6: contractFormRef
|
||||||
|
}
|
||||||
|
let dataFormList = proChangeObj[formData.value.changeItem].value.getData()
|
||||||
|
data[proChangeObj[formData.value.changeItem]] = dataFormList
|
||||||
|
if(formData.value.changeItem == 1) {
|
||||||
|
data.changeAmount = dataFormList.changeAmount
|
||||||
|
data.changeAmountDeadline = dataFormList.changeAmountDeadline
|
||||||
|
} else if(formData.value.changeItem == 2) {
|
||||||
|
let ids = []
|
||||||
|
dataFormList.map(item => {
|
||||||
|
ids.push(item.id)
|
||||||
|
})
|
||||||
|
data.afterAuthorizerId = ids.join(',')
|
||||||
|
} else if(formData.value.changeItem == 3) {
|
||||||
|
data.agreementDeadline = dataFormList.agreementDeadline
|
||||||
|
data.extensionYears = dataFormList.extensionYears
|
||||||
|
data.extensionDate = dataFormList.extensionDate
|
||||||
|
data.note = dataFormList.note
|
||||||
|
} else if(formData.value.changeItem == 4) {
|
||||||
|
data.terminationDate = dataFormList.terminationDate
|
||||||
|
data.terminationReason = dataFormList.terminationReason
|
||||||
|
data.note = dataFormList.note
|
||||||
|
} else if(formData.value.changeItem == 5) {
|
||||||
|
let ids = []
|
||||||
|
dataFormList.map(item => {
|
||||||
|
ids.push(item.id)
|
||||||
|
})
|
||||||
|
data.afterAffiliateCompanyId = ids.join(',')
|
||||||
|
} else if(formData.value.changeItem == 6) {
|
||||||
|
data.newContract = data
|
||||||
|
}
|
||||||
data.contractId = data.id
|
data.contractId = data.id
|
||||||
delete data.id
|
delete data.id
|
||||||
await ContractApi.changeContract(data)
|
await ContractApi.changeContract(data)
|
||||||
|
|
@ -326,6 +392,7 @@ const resetForm = () => {
|
||||||
partnerCompanyId: undefined,
|
partnerCompanyId: undefined,
|
||||||
deptId: undefined,
|
deptId: undefined,
|
||||||
quotationTimes: undefined,
|
quotationTimes: undefined,
|
||||||
|
changeItem: 1,
|
||||||
products: []
|
products: []
|
||||||
}
|
}
|
||||||
formRef.value?.resetFields()
|
formRef.value?.resetFields()
|
||||||
|
|
@ -405,8 +472,7 @@ const getContactOptions = computed(() =>
|
||||||
)
|
)
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
onBeforeMount(async () => {
|
onMounted(async () => {
|
||||||
console.log('%csrc/views/crm/contract/detail/ContractChangeDetail.vue:409 props.id,route.query.id', 'color: #007acc;', props.id,route.query.id);
|
|
||||||
formType.value = props.id || route.query.id;
|
formType.value = props.id || route.query.id;
|
||||||
|
|
||||||
if (formType.value) open(formType.value)
|
if (formType.value) open(formType.value)
|
||||||
|
|
@ -423,6 +489,6 @@ onBeforeMount(async () => {
|
||||||
// formData.value.ownerUserId = useUserStore().getUser.id
|
// formData.value.ownerUserId = useUserStore().getUser.id
|
||||||
// }
|
// }
|
||||||
// 获取联系人
|
// 获取联系人
|
||||||
contactList.value = await ContactApi.getSimpleContactList()
|
contactList.value = await CustomerApi.getCustomerSimpleList()
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,23 @@
|
||||||
<el-input v-model="formData.name" disabled placeholder="" />
|
<el-input v-model="formData.name" disabled placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
|
<el-select
|
||||||
|
v-model="formData.customerId"
|
||||||
|
disabled=""
|
||||||
|
placeholder=""
|
||||||
|
class="w-1/1"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in customerList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="8" v-if="formType">
|
<el-col :span="8" v-if="formType">
|
||||||
<el-form-item label="合同编号" prop="no">
|
<el-form-item label="合同编号" prop="no">
|
||||||
<el-input v-model="formData.no" disabled placeholder="" />
|
<el-input v-model="formData.no" disabled placeholder="" />
|
||||||
|
|
@ -39,23 +56,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
|
||||||
<el-select
|
|
||||||
v-model="formData.customerId"
|
|
||||||
disabled=""
|
|
||||||
placeholder=""
|
|
||||||
class="w-1/1"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in contactList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="方案签约人" prop="pricingUserId">
|
<el-form-item label="方案签约人" prop="pricingUserId">
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -202,11 +203,11 @@
|
||||||
<el-input v-model="formData.regType" placeholder="" disabled />
|
<el-input v-model="formData.regType" placeholder="" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8"> -->
|
||||||
<!-- <el-form-item label="融资信息" prop="financingInfo">
|
<!-- <el-form-item label="融资信息" prop="financingInfo">
|
||||||
<el-input v-model="formData.financingInfo" placeholder="融资信息" disabled />
|
<el-input v-model="formData.financingInfo" placeholder="融资信息" disabled />
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
</el-col>
|
<!-- </el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="实缴资金" prop="actualCapital">
|
<el-form-item label="实缴资金" prop="actualCapital">
|
||||||
<el-input v-model="formData.actualCapital" placeholder="" disabled />
|
<el-input v-model="formData.actualCapital" placeholder="" disabled />
|
||||||
|
|
@ -217,11 +218,11 @@
|
||||||
<el-input v-model="formData.socialEmployeeNum" placeholder="" disabled />
|
<el-input v-model="formData.socialEmployeeNum" placeholder="" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8"> -->
|
||||||
<!-- <el-form-item label="上市情况" prop="listingStatus">
|
<!-- <el-form-item label="上市情况" prop="listingStatus">
|
||||||
<el-input v-model="formData.listingStatus" placeholder="上市情况" disabled />
|
<el-input v-model="formData.listingStatus" placeholder="上市情况" disabled />
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
</el-col>
|
<!-- </el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="注册地址" prop="registeredAddress">
|
<el-form-item label="注册地址" prop="registeredAddress">
|
||||||
<el-input v-model="formData.registeredAddress" placeholder="" disabled />
|
<el-input v-model="formData.registeredAddress" placeholder="" disabled />
|
||||||
|
|
@ -275,7 +276,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="手机号" prop="mobile">
|
<el-form-item label="手机号" prop="mobile">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.ownerUserMobile"
|
v-model="formData.ownerUserMobile"
|
||||||
|
|
@ -301,7 +302,7 @@
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="归属部门" prop="deptId">
|
<el-form-item label="归属部门" prop="deptId">
|
||||||
<el-tree-select
|
<el-tree-select
|
||||||
|
|
@ -860,7 +861,7 @@ onMounted(async () => {
|
||||||
// formData.value.ownerUserId = useUserStore().getUser.id
|
// formData.value.ownerUserId = useUserStore().getUser.id
|
||||||
// }
|
// }
|
||||||
// 获取联系人
|
// 获取联系人
|
||||||
contactList.value = await ContactApi.getSimpleContactList()
|
contactList.value = await CustomerApi.getSelfCustomerSimpleList()
|
||||||
const data = await ContractApi.getOrg({
|
const data = await ContractApi.getOrg({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 1000
|
pageSize: 1000
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
<span v-else>无附件</span>
|
<span v-else>无附件</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="关联的联系人编号数组" align="center" prop="contactIds" />
|
<!-- <el-table-column label="关联的联系人编号数组" align="center" prop="contactIds" /> -->
|
||||||
<el-table-column label="创建者" align="center" prop="creator" >
|
<el-table-column label="创建者" align="center" prop="creator" >
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{getName(userOptions, scope.row.creator)}}
|
{{getName(userOptions, scope.row.creator)}}
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
:formatter="dateFormatter"
|
:formatter="dateFormatter"
|
||||||
width="180px"
|
width="180px"
|
||||||
/>
|
/>
|
||||||
<el-table-column label="操作" align="center" min-width="120px">
|
<el-table-column label="操作" align="center" fixed="right" min-width="120px">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,11 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="统一信用代码" prop="creditNo">
|
||||||
|
<el-input v-model="formData.creditCode" placeholder="" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="开户行" prop="bankName">
|
<el-form-item label="开户行" prop="bankName">
|
||||||
<el-input v-model="formData.bankName" disabled />
|
<el-input v-model="formData.bankName" disabled />
|
||||||
|
|
@ -193,11 +198,11 @@
|
||||||
<el-input v-model="formData.bBusinessLicenseNumber" disabled />
|
<el-input v-model="formData.bBusinessLicenseNumber" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="营业执照" prop="businessLicense">
|
<el-form-item label="营业执照" prop="businessLicense">
|
||||||
<el-input v-model="formData.businessLicense" disabled />
|
<el-input v-model="formData.businessLicense" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -172,6 +172,11 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="统一信用代码" prop="creditCode">
|
||||||
|
<el-input v-model="formData.creditCode" placeholder="" disabled />
|
||||||
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="开户行" prop="bankName">
|
<el-form-item label="开户行" prop="bankName">
|
||||||
|
|
@ -594,6 +599,7 @@ const onPartnerChange = async (id: string) => {
|
||||||
formLoading.value = true;
|
formLoading.value = true;
|
||||||
const res = await ContractApi.getOrgInfo(id);
|
const res = await ContractApi.getOrgInfo(id);
|
||||||
formData.value.bankName = res.bankName;
|
formData.value.bankName = res.bankName;
|
||||||
|
formData.value.creditCode = res.creditCode;
|
||||||
formData.value.bankAccount = res.bankAccount;
|
formData.value.bankAccount = res.bankAccount;
|
||||||
formData.value.legalRepresentative = res.legalRepresentative;
|
formData.value.legalRepresentative = res.legalRepresentative;
|
||||||
formData.value.businessLicenseNumber = res.businessLicenseNumber;
|
formData.value.businessLicenseNumber = res.businessLicenseNumber;
|
||||||
|
|
|
||||||
|
|
@ -15,171 +15,184 @@
|
||||||
:destroy-on-close="true"
|
:destroy-on-close="true"
|
||||||
class="signNameModel"
|
class="signNameModel"
|
||||||
>
|
>
|
||||||
<slot>
|
<div class="signWrap">
|
||||||
<div class="signWrap">
|
<VueSignaturePad
|
||||||
<VueSignaturePad
|
width="100%"
|
||||||
width="100%"
|
height="100%"
|
||||||
height="100%"
|
ref="signaturePad"
|
||||||
ref="signaturePad"
|
:options="options"
|
||||||
:options="options"
|
/>
|
||||||
/>
|
<footer>
|
||||||
<footer>
|
<div class="gtnGroup">
|
||||||
<div class="gtnGroup">
|
<el-button type="primary" size="mini" @click="undo">撤销</el-button>
|
||||||
<el-button type="primary" size="mini" @click="undo">撤销</el-button>
|
<el-button type="primary" size="mini" style="margin-left:20px" @click="clear">清屏</el-button>
|
||||||
<el-button type="primary" size="mini" style="margin-left:20px" @click="clear">清屏</el-button>
|
<el-button type="primary" size="mini" style="margin-left:20px" @click="save">保存</el-button>
|
||||||
<el-button type="primary" size="mini" style="margin-left:20px" @click="save">保存</el-button>
|
</div>
|
||||||
|
<div class="otherSet">
|
||||||
|
<div class="penTxt">笔刷大小:</div>
|
||||||
|
<div class="circleWrap" :class="{ active: isActive1 }" @click="selSize(1)">
|
||||||
|
<b class="b1"></b>
|
||||||
</div>
|
</div>
|
||||||
<div class="otherSet">
|
<div class="circleWrap" :class="{ active: isActive2 }" @click="selSize(2)">
|
||||||
<div class="penTxt">笔刷大小:</div>
|
<b class="b2"></b>
|
||||||
<div class="circleWrap" :class="{ active: isActive1 }" @click="selSize(1)"><b class="b1"></b></div>
|
|
||||||
<div class="circleWrap" :class="{ active: isActive2 }" @click="selSize(2)"><b class="b2"></b></div>
|
|
||||||
<div class="circleWrap" :class="{ active: isActive3 }" @click="selSize(3)"><b class="b3"></b></div>
|
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
<div class="circleWrap" :class="{ active: isActive3 }" @click="selSize(3)">
|
||||||
</div>
|
<b class="b3"></b>
|
||||||
</slot>
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
</vxe-modal>
|
</vxe-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
|
||||||
export default {
|
<script setup lang="ts">
|
||||||
data(){
|
import { ref } from 'vue';
|
||||||
return {
|
// import VueSignaturePad from 'vue-signature-pad';
|
||||||
panelVisible:false,
|
// import 'vue-signature-pad/dist/vue-signature-pad.css';
|
||||||
panelTitle:"",
|
|
||||||
options: {
|
const panelVisible = ref(false);
|
||||||
penColor: "#000",
|
const imgSrc = ref('');
|
||||||
minWidth: 1, //控制画笔最小宽度
|
const signaturePad = ref(null);
|
||||||
maxWidth: 1, //控制画笔最大宽度
|
const isActive1 = ref(true);
|
||||||
},
|
const isActive2 = ref(false);
|
||||||
isActive1:true,
|
const isActive3 = ref(false);
|
||||||
isActive2:false,
|
|
||||||
isActive3:false,
|
const options = ref({
|
||||||
imgSrc:"",
|
penColor: '#000',
|
||||||
}
|
minWidth: 1,
|
||||||
},
|
maxWidth: 1,
|
||||||
methods: {
|
});
|
||||||
//手写签名按钮的点击
|
|
||||||
handleClick(){
|
const handleClick = () => {
|
||||||
this.panelVisible=true;
|
panelVisible.value = true;
|
||||||
this.isActive1=true;
|
isActive1.value = true;
|
||||||
this.isActive2=false;
|
isActive2.value = false;
|
||||||
this.isActive3=false;
|
isActive3.value = false;
|
||||||
this.options = {
|
options.value = {
|
||||||
penColor: "#000",
|
penColor: '#000',
|
||||||
minWidth: 1,
|
minWidth: 1,
|
||||||
maxWidth: 1,
|
maxWidth: 1,
|
||||||
}
|
};
|
||||||
},
|
};
|
||||||
//撤销
|
|
||||||
undo(){
|
const undo = () => {
|
||||||
this.$refs.signaturePad.undoSignature();
|
signaturePad.value.undoSignature();
|
||||||
},
|
};
|
||||||
//清除
|
|
||||||
clear(){
|
const clear = () => {
|
||||||
this.$refs.signaturePad.clearSignature();
|
signaturePad.value.clearSignature();
|
||||||
},
|
};
|
||||||
//保存
|
|
||||||
save(){
|
const save = () => {
|
||||||
console.log( this.$refs.signaturePad.saveSignature() );
|
const { isEmpty, data } = signaturePad.value.saveSignature();
|
||||||
const { isEmpty, data } = this.$refs.signaturePad.saveSignature();
|
imgSrc.value = data;
|
||||||
this.imgSrc = data;
|
panelVisible.value = false;
|
||||||
this.panelVisible = false;
|
};
|
||||||
},
|
|
||||||
//调节画笔粗细大小
|
const selSize = (val: number) => {
|
||||||
selSize(val){
|
options.value = {
|
||||||
this.options = {
|
penColor: '#000',
|
||||||
penColor: "#000",
|
minWidth: val,
|
||||||
minWidth: val,
|
maxWidth: val,
|
||||||
maxWidth: val,
|
};
|
||||||
};
|
if (val === 1) {
|
||||||
if(val==1){
|
isActive1.value = true;
|
||||||
this.isActive1=true;
|
isActive2.value = false;
|
||||||
this.isActive2=false;
|
isActive3.value = false;
|
||||||
this.isActive3=false;
|
} else if (val === 2) {
|
||||||
}else if(val==2){
|
isActive1.value = false;
|
||||||
this.isActive1=false;
|
isActive2.value = true;
|
||||||
this.isActive2=true;
|
isActive3.value = false;
|
||||||
this.isActive3=false;
|
} else if (val === 3) {
|
||||||
}else if(val==3){
|
isActive1.value = false;
|
||||||
this.isActive1=false;
|
isActive2.value = false;
|
||||||
this.isActive2=false;
|
isActive3.value = true;
|
||||||
this.isActive3=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.handwritten-name-wrap{
|
.handwritten-name-wrap {
|
||||||
.img-wrap{
|
.img-wrap {
|
||||||
width:100%;
|
width: 100%;
|
||||||
height:164px;
|
height: 164px;
|
||||||
margin-top:2px;
|
margin-top: 2px;
|
||||||
border:1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
img{
|
img {
|
||||||
width:70%;
|
width: 70%;
|
||||||
height:100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.signWrap{
|
.signWrap {
|
||||||
height:100%;
|
height: 100%;
|
||||||
display:flex;
|
display: flex;
|
||||||
flex-direction:column;
|
flex-direction: column;
|
||||||
justify-content:center;
|
justify-content: center;
|
||||||
.signName{
|
.signName {
|
||||||
flex:1;
|
flex: 1;
|
||||||
border-top:1px solid #ccc;
|
border-top: 1px solid #ccc;
|
||||||
}
|
}
|
||||||
footer{
|
footer {
|
||||||
height:40px;
|
height: 40px;
|
||||||
border-top:1px solid #ccc;
|
border-top: 1px solid #ccc;
|
||||||
display:flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.gtnGroup{
|
.gtnGroup {
|
||||||
width:50%;
|
width: 50%;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
.otherSet{
|
.otherSet {
|
||||||
width:50%;
|
width: 50%;
|
||||||
display:flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.penTxt{
|
.penTxt {
|
||||||
width:70px;
|
width: 70px;
|
||||||
}
|
}
|
||||||
.selSize{
|
.selSize {
|
||||||
width:70px;
|
width: 70px;
|
||||||
}
|
}
|
||||||
.el-select__caret{
|
.el-select__caret {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: -3px;
|
right: -3px;
|
||||||
}
|
}
|
||||||
.b1,.b2,.b3{
|
.b1, .b2, .b3 {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: #000;
|
background: #000;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
.circleWrap{
|
.circleWrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width:18px;
|
width: 18px;
|
||||||
height:18px;
|
height: 18px;
|
||||||
cursor:pointer;
|
cursor: pointer;
|
||||||
margin-right:20px;
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
border: 1px dashed #0074d9;
|
||||||
|
}
|
||||||
|
.b1 {
|
||||||
|
width: 4px;
|
||||||
|
height: 4px;
|
||||||
|
}
|
||||||
|
.b2 {
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
.b3 {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
}
|
}
|
||||||
.active{ border:1px dashed #0074d9; }
|
|
||||||
.b1{width:4px;height:4px}
|
|
||||||
.b2{width:6px;height:6px}
|
|
||||||
.b3{width:8px;height:8px}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.signNameModel{
|
.signNameModel {
|
||||||
.vxe-modal--content{
|
.vxe-modal--content {
|
||||||
padding:0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
Loading…
Reference in New Issue