index.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <!-- 注销协议-->
  3. <a-modal class="commonModal addSpotVariety"
  4. title="注销协议"
  5. centered
  6. v-model:visible="visible"
  7. :maskClosable="false"
  8. @cancel="cancel"
  9. width="890px">
  10. <template #footer>
  11. <a-button key="submit"
  12. type="primary"
  13. :loading="loading"
  14. @click="submit">注销</a-button>
  15. <a-button key="submit"
  16. type="primary"
  17. :loading="loading"
  18. @click="cancel">关闭</a-button>
  19. </template>
  20. <a-form class="inlineForm">
  21. <fieldset class="formFieldSet">
  22. <legend>协议信息</legend>
  23. <Des :list="desList"
  24. @onClick="getContent(selectedRow.agreementcontent)" />
  25. </fieldset>
  26. <fieldset class="formFieldSet">
  27. <legend>修改流水</legend>
  28. <div class="tableDatas tableContextCenter">
  29. <a-table class="dialogTable"
  30. :columns="columns"
  31. :data-source="tableList"
  32. :pagination="false">
  33. <!-- 协议类型-->
  34. <template #agreementcontent="{ record }">
  35. <a @click="getContent(record.agreementcontent)">查看</a>
  36. </template>
  37. </a-table>
  38. </div>
  39. </fieldset>
  40. </a-form>
  41. </a-modal>
  42. <a-modal class="commonModal addSpotVariety"
  43. title="协议内容"
  44. centered
  45. v-model:visible="visibleContent"
  46. :maskClosable="false"
  47. @cancel="visibleContent = false"
  48. width="890px">
  49. <a-textarea class="dialogInput"
  50. v-model:value="content"
  51. style="width: 100%"
  52. placeholder="请输入协议内容"
  53. readonly
  54. :autosize="{ minRows: 8, maxRows: 24 }" />
  55. <template #footer>
  56. <a-button key="submit"
  57. type="primary"
  58. @click="visibleContent = false">关闭</a-button>
  59. </template>
  60. </a-modal>
  61. </template>
  62. <script lang="ts">
  63. import { defineComponent, PropType, ref, watchEffect } from 'vue';
  64. import { closeModal } from '@/common/setup/modal/index';
  65. import { Des, handleDesList } from '@/common/components/commonDes';
  66. import { QhjAgreementChangeLog, QhjAgreementConfig } from '@/services/go/ermcp/qhj/interface';
  67. import { formatValue } from '@/common/methods';
  68. import { getAgreementTypeName } from '@/common/constants/enumsName';
  69. import { handleArgreementType } from '../../setup';
  70. import { queryTableList } from '@/common/setup/table';
  71. import { queryAgreementChangeLog } from '@/services/go/ermcp/qhj';
  72. import {requestResultLoadingAndInfo} from "@/common/methods/request/resultInfo";
  73. import {agreementConfigOperate} from "@/services/proto/manager";
  74. import {QHJAgreementConfigOperateReq} from "@/services/proto/manager/interface";
  75. const columns = [
  76. {
  77. title: '时间',
  78. dataIndex: 'updatetime',
  79. key: 'updatetime',
  80. },
  81. {
  82. title: '协议名称',
  83. dataIndex: 'agreementname',
  84. key: 'agreementname',
  85. },
  86. {
  87. title: '内容',
  88. dataIndex: 'agreementcontent',
  89. key: 'agreementcontent',
  90. slots: { customRender: 'agreementcontent' },
  91. },
  92. ];
  93. export default defineComponent({
  94. name: 'custom-detail',
  95. components: { Des },
  96. props: {
  97. selectedRow: {
  98. type: Object as PropType<QhjAgreementConfig>,
  99. default: {},
  100. },
  101. },
  102. setup(props, context) {
  103. const { visible, cancel } = closeModal('platinum_agreement_delete');
  104. const { desList, getDesList } = handleDesList();
  105. const { getRateEnumName } = handleArgreementType();
  106. const { loading, tableList, queryTable } = queryTableList<QhjAgreementChangeLog>();
  107. // 协议内容
  108. const visibleContent = ref<boolean>(false);
  109. const content = ref<string>('');
  110. function getContent(value: string) {
  111. visibleContent.value = true;
  112. content.value = value;
  113. }
  114. watchEffect(() => {
  115. if (visible.value) {
  116. const data = props.selectedRow;
  117. queryTable(queryAgreementChangeLog, { agreementid: data.agreementid });
  118. const list = [
  119. { label: '协议编号', value: formatValue(data.agreementno) },
  120. { label: '协议名称', value: formatValue(data.agreementname) },
  121. { label: '协议类型', value: getAgreementTypeName(data.agreementtype) },
  122. { label: '签署频率', value: getRateEnumName(data.agreementfrequency) },
  123. { label: '内容', value: '查看', className: 'blue' },
  124. ];
  125. getDesList(list);
  126. }
  127. });
  128. function submit() {
  129. const reqParam: QHJAgreementConfigOperateReq = {
  130. operatetype: 5 ,// uint32 操作类型-1:新增 2:修改 3:停用 4:恢复 5:注销
  131. agreementid: props.selectedRow.agreementid // uint64 协议ID(操作类型为2,3,4,5时必填)
  132. }
  133. requestResultLoadingAndInfo(agreementConfigOperate, reqParam, loading, ['注销协议成功', '注销协议失败:']).then(() => {
  134. context.emit('refresh');
  135. });
  136. }
  137. return {
  138. visibleContent,
  139. content,
  140. getContent,
  141. columns,
  142. cancel,
  143. desList,
  144. visible,
  145. tableList,
  146. submit,
  147. };
  148. },
  149. });
  150. </script>
  151. <style lang="less">
  152. .custom-detail {
  153. .ant-form.inlineForm {
  154. margin-top: 20px;
  155. }
  156. .upload {
  157. .look {
  158. margin-left: 0;
  159. }
  160. }
  161. }
  162. </style>;