index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <!-- 修改协议 -->
  3. <a-modal class="commonModal modify-custom"
  4. title="修改协议"
  5. v-if="visible"
  6. v-model:visible="visible"
  7. centered
  8. :maskClosable="false"
  9. @cancel="cancel"
  10. width="890px">
  11. <template #footer>
  12. <a-button key="submit"
  13. type="primary"
  14. :loading="loading"
  15. @click="submit(2)">修改</a-button>
  16. </template>
  17. <a-form class="inlineForm"
  18. ref="formRef"
  19. :model="formState"
  20. :rules="rules">
  21. <a-row :gutter="24">
  22. <a-col :span="12">
  23. <a-form-item label="协议编号">
  24. <span class="white">{{formState.agreementno}}</span>
  25. </a-form-item>
  26. </a-col>
  27. <a-col :span="12">
  28. <a-form-item label="协议名称"
  29. name="agreementname">
  30. <a-input class="dialogInput"
  31. v-model:value="formState.agreementname"
  32. style="width: 200px"
  33. placeholder="请输入协议名称" />
  34. </a-form-item>
  35. </a-col>
  36. <a-col :span="12">
  37. <a-form-item label="协议类型">
  38. <span class="white">{{getAgreementTypeName(formState.agreementtype)}}</span>
  39. </a-form-item>
  40. </a-col>
  41. <a-col :span="12">
  42. <a-form-item label="签署频率"
  43. name="agreementname">
  44. <span class="white">{{getRate()}}</span>
  45. </a-form-item>
  46. </a-col>
  47. <a-col :span="24">
  48. <a-form-item label="协议内容"
  49. name="agreementcontent">
  50. <a-textarea class="dialogInput"
  51. v-model:value="formState.agreementcontent"
  52. style="width: 635px"
  53. placeholder="请输入协议内容"
  54. :autosize="{ minRows: 8, maxRows: 24 }" />
  55. </a-form-item>
  56. </a-col>
  57. </a-row>
  58. </a-form>
  59. </a-modal>
  60. </template>
  61. <script lang="ts">
  62. import { closeModal } from '@/common/setup/modal/index';
  63. import { defineComponent, PropType, ref, watchEffect } from 'vue';
  64. import { handleForm, initFormState } from '../add/setup';
  65. import { FormState } from '../add/interface';
  66. import { mergeTwoObj } from '@/utils/objHandle';
  67. import { validateAction } from '@/common/setup/form';
  68. import { QhjAgreementConfig } from '@/services/go/ermcp/qhj/interface';
  69. import { handleArgreementType } from '../../setup';
  70. import {QHJAgreementConfigOperateReq} from "@/services/proto/manager/interface";
  71. import {getUserId} from "@/services/bus/account";
  72. import {requestResultLoadingAndInfo} from "@/common/methods/request/resultInfo";
  73. import {agreementConfigOperate} from "@/services/proto/manager";
  74. import {getAgreementTypeName} from "@/common/constants/enumsName";
  75. export default defineComponent({
  76. name: 'modify-custom',
  77. components: {},
  78. props: {
  79. selectedRow: {
  80. default: initFormState,
  81. type: Object as PropType<QhjAgreementConfig>,
  82. },
  83. },
  84. setup(props: { selectedRow: QhjAgreementConfig }, context: { emit: (arg0: string) => void }) {
  85. const { visible, cancel } = closeModal('platinum_agreement_modify');
  86. const loading = ref<boolean>(false);
  87. const { formRef, formState, rules } = handleForm();
  88. // 协议类型
  89. const { getRate } = handleArgreementType(formState);
  90. watchEffect(() => {
  91. if (visible.value) {
  92. mergeTwoObj(formState, props.selectedRow);
  93. }
  94. });
  95. function submit() {
  96. validateAction<FormState>(formRef, formState).then((param) => {
  97. const reqParam: QHJAgreementConfigOperateReq = {
  98. operatetype: 2, // uint32 操作类型-1:新增 2:修改
  99. agreementid: props.selectedRow.agreementid,
  100. agreementname: param.agreementname, // string 协议名称
  101. agreementcontent: param.agreementcontent, // string 协议内容
  102. operatesrc: 1, // uint32 操作来源 - 1:管理端 2:终端
  103. operateid: getUserId(), // uint64 操作人
  104. };
  105. requestResultLoadingAndInfo(agreementConfigOperate, reqParam, loading, ['修改协议成功', '修改协议失败:']).then(() => {
  106. cancel();
  107. context.emit('refresh');
  108. });
  109. });
  110. }
  111. return {
  112. getRate,
  113. formState,
  114. rules,
  115. formRef,
  116. visible,
  117. cancel,
  118. submit,
  119. loading,
  120. getAgreementTypeName,
  121. };
  122. },
  123. });
  124. </script>
  125. <style lang="less">
  126. .modify-custom {
  127. .upload {
  128. display: inline-flex;
  129. .ant-btn.uploadBtn {
  130. width: 60px;
  131. height: 30px;
  132. background: @m-blue0;
  133. border: 0;
  134. padding: 0;
  135. text-align: center;
  136. font-size: 14px;
  137. color: @m-white0;
  138. .rounded-corners(3px);
  139. &:hover {
  140. background: rgba(@m-blue0, 0);
  141. color: rgba(@m-white0, 0.8);
  142. }
  143. }
  144. .look {
  145. color: @m-blue0;
  146. font-size: 14px;
  147. margin-left: 10px;
  148. cursor: pointer;
  149. }
  150. }
  151. }
  152. </style
  153. >;