dialog.letter.detail.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <template>
  2. <div class="edu-training-edit">
  3. <DialogCom
  4. :title="title"
  5. @close="onHide"
  6. :visible.sync="isShow"
  7. width="1000px"
  8. >
  9. <div class="page-body">
  10. <el-descriptions
  11. :column="2"
  12. border
  13. size="medium"
  14. :label-style="labelStyle"
  15. :contentStyle="content_style">
  16. <el-descriptions-item label="当前状态">
  17. <dict-tag :options="dict.type.letter_status" :value="formData.status"/>
  18. </el-descriptions-item>
  19. <el-descriptions-item label="介绍信编号">{{formData.letterNo}}</el-descriptions-item>
  20. <el-descriptions-item label="接待机构">{{formData.receptionOrgNames}}</el-descriptions-item>
  21. <el-descriptions-item label="来访事由">{{formData.reasons}}</el-descriptions-item>
  22. <el-descriptions-item label="开具日期">{{formData.startTimeStr}}</el-descriptions-item>
  23. <el-descriptions-item label="有效天数">{{formData.effectiveDays}}</el-descriptions-item>
  24. <el-descriptions-item label="介绍信附件">
  25. <K-file-upload
  26. ref="upload"
  27. :isShowUploadBtn="false"
  28. :defaultValue="formData.letterFile"
  29. />
  30. </el-descriptions-item>
  31. <el-descriptions-item label="备注">{{formData.description}}</el-descriptions-item>
  32. </el-descriptions >
  33. <!-- <el-form-->
  34. <!-- ref="form"-->
  35. <!-- :model="formData"-->
  36. <!-- label-width="120px"-->
  37. <!-- label-suffix=":"-->
  38. <!-- >-->
  39. <!-- <el-row>-->
  40. <!-- <el-col :span="24">-->
  41. <!-- <el-form-item label="当前状态">-->
  42. <!-- <dict-tag :options="dict.type.letter_status" :value="formData.status"/>-->
  43. <!-- </el-form-item>-->
  44. <!-- </el-col>-->
  45. <!-- <el-col :span="12">-->
  46. <!-- <el-form-item label="介绍信编号" prop="letterNo">-->
  47. <!-- {{formData.letterNo}}-->
  48. <!-- </el-form-item>-->
  49. <!-- </el-col>-->
  50. <!-- <el-col :span="12">-->
  51. <!-- <el-form-item label="接待机构" prop="receptionOrgIds">-->
  52. <!-- &lt;!&ndash; <org-tree-select v-model="formData.receptionOrgIds" ref="orgTreeSelect">-->
  53. <!-- </org-tree-select> &ndash;&gt;-->
  54. <!-- {{formData.receptionOrgNames}}-->
  55. <!-- </el-form-item>-->
  56. <!-- </el-col>-->
  57. <!-- <el-col :span="24">-->
  58. <!-- <el-form-item prop="reasons" label="来访事由">-->
  59. <!-- {{formData.reasons}}-->
  60. <!-- </el-form-item>-->
  61. <!-- </el-col>-->
  62. <!-- <el-col :span="12">-->
  63. <!-- <el-form-item label="开具日期">-->
  64. <!-- {{ formData.startTimeStr}}-->
  65. <!-- </el-form-item>-->
  66. <!-- </el-col>-->
  67. <!-- <el-col :span="12">-->
  68. <!-- <el-form-item label="有效天数">-->
  69. <!-- {{ formData.effectiveDays}}-->
  70. <!-- </el-form-item>-->
  71. <!-- </el-col>-->
  72. <!-- <el-col :span="12">-->
  73. <!-- <el-form-item label="介绍信附件">-->
  74. <!-- <K-file-upload-->
  75. <!-- ref="upload"-->
  76. <!-- :isShowUploadBtn="false"-->
  77. <!-- :defaultValue="formData.letterFile"-->
  78. <!-- />-->
  79. <!-- </el-form-item>-->
  80. <!-- </el-col>-->
  81. <!-- <el-col :span="12">-->
  82. <!-- <el-form-item label="备注">-->
  83. <!-- {{formData.description}}-->
  84. <!-- </el-form-item>-->
  85. <!-- </el-col>-->
  86. <!-- </el-row>-->
  87. <!-- </el-form>-->
  88. <el-row :gutter="10">
  89. <el-col :span="12">
  90. <h3>
  91. <i class="el-icon-collection-tag"></i>
  92. 人员信息
  93. </h3>
  94. </el-col>
  95. </el-row>
  96. <el-table border :data="formData.userInfos" max-height="500" style="margin-bottom: 10px;">
  97. <el-table-column label="序号" align="center" type="index" width="70" />
  98. <el-table-column label="来访单位" width="150" align="center" prop="companyName" />
  99. <el-table-column label="来访人员" width="100" align="center" prop="userName" />
  100. <el-table-column label="证件类型" width="100" align="center" prop="idType">
  101. <template slot-scope="scope">
  102. <dict-tag :options="dict.type.letter_id_type" :value="scope.row.idType"/>
  103. </template>
  104. </el-table-column>
  105. <el-table-column label="证件号码" width="200" align="center" prop="idCard">
  106. </el-table-column>
  107. <el-table-column label="证件图片" align="center" prop="imgFile">
  108. <template slot-scope="scope">
  109. <ImageListPreview v-model="scope.row.imgFile"></ImageListPreview>
  110. </template>
  111. </el-table-column>
  112. </el-table>
  113. <el-row :gutter="10">
  114. <el-col :span="12">
  115. <h3 >
  116. <i class="el-icon-collection-tag"></i>
  117. 审批详情
  118. </h3>
  119. </el-col>
  120. </el-row>
  121. <el-table border :data="formData.approveInfos" max-height="500" style="margin-bottom: 10px;">
  122. <el-table-column label="机构名称" header-align="center" align="left" prop="orgName" />
  123. <el-table-column label="审批状态" align="center" prop="approveStatus" >
  124. <template slot-scope="scope">
  125. <dict-tag :options="dict.type.out_in_approve_status" :value="scope.row.approveStatus"/>
  126. </template>
  127. </el-table-column>
  128. <el-table-column label="审批说明" header-align="center" align="center" prop="approveRemark">
  129. </el-table-column>
  130. </el-table>
  131. </div>
  132. <div slot="footer" class="dialog-footer">
  133. <el-button @click="onHide">关 闭</el-button>
  134. </div>
  135. </DialogCom>
  136. </div>
  137. </template>
  138. <script>
  139. import { mapState, mapMutations } from "vuex";
  140. import {
  141. listLetter,
  142. getLetter,
  143. delLetter,
  144. addLetter,
  145. updateLetter,
  146. } from "@/api/core/letter";
  147. import OrgTreeSelect from "@/components/orgTreeSelect";
  148. import KFileUpload from "@/components/K-FileUpload/index.vue";
  149. import dayjs from "dayjs";
  150. import imgUpload from "@/components/ImageUpload";
  151. import DataRangePicker from "@/components/dateTime/daterange.picker.vue";
  152. export default {
  153. components: { OrgTreeSelect, KFileUpload, imgUpload,DataRangePicker },
  154. data() {
  155. const params = this.$route.params;
  156. return {
  157. labelStyle: {
  158. color: "#000",
  159. "text-align": "center",
  160. height: "40px",
  161. "min-width": "150px",
  162. "word-break": "keep-all",
  163. },
  164. content_style: {
  165. "text-align": "left",
  166. "min-width": "300px",
  167. "word-break": "break-all",
  168. },
  169. id: params ? params.id : null,
  170. isShow: false,
  171. title: "录入介绍信",
  172. formData: this.reset(),
  173. open: false,
  174. userInfo: this.resetUserInfo(),
  175. imageList: [],
  176. };
  177. },
  178. dicts: ["letter_status","out_in_approve_status","letter_id_type"],
  179. props: {},
  180. watch: {},
  181. created() {},
  182. computed: {
  183. ...mapState(["loginUser", "org"]),
  184. },
  185. methods: {
  186. ...mapMutations([]),
  187. reset(other = {}) {
  188. return {
  189. reasons: null,
  190. letterNo:null,
  191. receptionOrgIds: [],
  192. range:[],
  193. description: null,
  194. letterFile: [],
  195. userInfos: [],
  196. type:1,
  197. status:null,
  198. ...other,
  199. };
  200. },
  201. resetUserInfo() {
  202. return {
  203. userName: null,
  204. companyName: null,
  205. idCard: null,
  206. imgFile: null,
  207. };
  208. },
  209. async show(id) {
  210. this.title = "介绍信详情";
  211. this.isShow = true;
  212. getLetter(id).then((response) => {
  213. let tempRange=[];
  214. tempRange.push(dayjs(response.data.startTime));
  215. tempRange.push(new Date(response.data.endTime));
  216. response.data.range=tempRange;
  217. this.formData = response.data;
  218. });
  219. },
  220. onHide() {
  221. this.isShow = false;
  222. this.formData = this.reset();
  223. },
  224. },
  225. mounted() {},
  226. };
  227. </script>