data.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <template>
  2. <div class="app-container">
  3. <el-table v-loading="loading" :data="dataList" >
  4. <el-table-column label="合同编号" align="center" prop="supplierContractCode" min-width="350">
  5. </el-table-column>
  6. <el-table-column label="合同名称" align="center" prop="supplierContractName" min-width="150" />
  7. <el-table-column label="是否框架合同" align="center" prop="isFrameContractDesc" min-width="100" />
  8. <el-table-column label="供应商" align="center" prop="supplierName" min-width="150" />
  9. <el-table-column label="合同开始日期" align="center" prop="startDate" min-width="100" />
  10. <el-table-column label="合同结束日期" align="center" prop="endDate" min-width="100" />
  11. <el-table-column label="合同金额" align="center" prop="money" min-width="100" />
  12. <el-table-column label="负责人" align="center" prop="ownerEmployeeName" min-width="100" />
  13. <el-table-column label="所属部门" align="center" prop="deptName" min-width="100"/>
  14. <el-table-column label="状态" align="center" prop="contractStatusDesc" min-width="100"/>
  15. <el-table-column label="是否关闭" align="center" prop="closedDesc" min-width="100"/>
  16. <el-table-column label="是否终止" align="center" prop="terminateDesc" min-width="100"/>
  17. <el-table-column label="创建人" align="center" prop="creatorName" min-width="100" />
  18. <el-table-column label="创建时间" align="center" prop="createTime" min-width="150">
  19. <template v-slot="scope">
  20. <span>{{ parseTime(scope.row.createTime) }}</span>
  21. </template>
  22. </el-table-column>
  23. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  24. <template v-slot="scope">
  25. <el-button size="mini" type="text" icon="el-icon-detail" @click="handleDetail(scope.row)">详情</el-button>
  26. </template>
  27. </el-table-column>
  28. </el-table>
  29. <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
  30. @pagination="getList"/>
  31. <!-- 详情对话框 -->
  32. <el-dialog :title="title" :visible.sync="openDetail" width="800px" append-to-body>
  33. <div class="widget-wrapper">
  34. <div class="widget-list">
  35. <div class="fx-field x-grid-col-12">
  36. <div class="field-label">
  37. <span class="field-required">*</span>
  38. <div class="field-name">合同编号</div>
  39. </div>
  40. <div class="field-component">
  41. <span :title="form.supplierContractCode">{{ form.supplierContractCode }}</span>
  42. </div>
  43. </div>
  44. <div class="fx-field x-grid-col-12">
  45. <div class="field-label">
  46. <span class="field-required">*</span>
  47. <div class="field-name">合同名称</div>
  48. </div>
  49. <div class="field-component">
  50. <span :title="form.supplierContractName">{{ form.supplierContractName }}</span>
  51. </div>
  52. </div>
  53. <div class="fx-field x-grid-col-12">
  54. <div class="field-label">
  55. <span class="field-required">*</span>
  56. <div class="field-name">框架合同</div>
  57. </div>
  58. <div class="field-component">
  59. <span :title="form.isFrameContractDesc">{{ form.isFrameContractDesc }}</span>
  60. </div>
  61. </div>
  62. <div class="fx-field x-grid-col-12">
  63. <div class="field-label">
  64. <span class="field-required">*</span>
  65. <div class="field-name">供应商</div>
  66. </div>
  67. <div class="field-component">
  68. <span :title="form.supplierName">{{ form.supplierName }}</span>
  69. </div>
  70. </div>
  71. <div class="fx-field x-grid-col-12">
  72. <div class="field-label">
  73. <span class="field-required">*</span>
  74. <div class="field-name">开始日期</div>
  75. </div>
  76. <div class="field-component">
  77. <span :title="form.startDate">{{ form.startDate }}</span>
  78. </div>
  79. </div>
  80. <div class="fx-field x-grid-col-12">
  81. <div class="field-label">
  82. <span class="field-required">*</span>
  83. <div class="field-name">结束日期</div>
  84. </div>
  85. <div class="field-component">
  86. <span :title="form.endDate">{{ form.endDate }}</span>
  87. </div>
  88. </div>
  89. <div class="fx-field x-grid-col-12">
  90. <div class="field-label">
  91. <span class="field-required">*</span>
  92. <div class="field-name">合同金额</div>
  93. </div>
  94. <div class="field-component">
  95. <span :title="form.money">{{ form.money }}</span>
  96. </div>
  97. </div>
  98. <div class="fx-field x-grid-col-12">
  99. <div class="field-label">
  100. <span class="field-required">*</span>
  101. <div class="field-name">负责人</div>
  102. </div>
  103. <div class="field-component">
  104. <span :title="form.ownerEmployeeName">{{ form.ownerEmployeeName }}</span>
  105. </div>
  106. </div>
  107. <div class="fx-field x-grid-col-12">
  108. <div class="field-label">
  109. <div class="field-name">所属部门</div>
  110. </div>
  111. <div class="field-component">
  112. <span :title="form.deptName">{{ form.deptName }}</span>
  113. </div>
  114. </div>
  115. <div class="fx-field x-grid-col-12">
  116. <div class="field-label">
  117. <div class="field-name">附件</div>
  118. </div>
  119. <div class="field-component">
  120. <div v-for="(item, index) in form.fileList" :key="index">
  121. <a :href="item.url" target="_blank" :title="item.name" style="color: #5094d5;">{{ item.name }}</a>
  122. </div>
  123. </div>
  124. </div>
  125. <div class="fx-field x-grid-col-12">
  126. <div class="field-label">
  127. <div class="field-name">备注</div>
  128. </div>
  129. <div class="field-component">
  130. <span :title="form.remarks">{{ form.remarks }}</span>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. </el-dialog>
  136. </div>
  137. </template>
  138. <script>
  139. import { listHistoryData, getHistoryData, } from "@/api/finance/contract/supplier";
  140. export default {
  141. name: "SystemDictData",
  142. data() {
  143. return {
  144. // 遮罩层
  145. loading: true,
  146. // 导出遮罩层
  147. exportLoading: false,
  148. // 总条数
  149. total: 0,
  150. // 字典表格数据
  151. dataList: [],
  152. // 弹出层标题
  153. title: "",
  154. // 是否显示弹出层
  155. openDetail: false,
  156. // 表单参数
  157. form: {},
  158. queryParams : {
  159. pageNo: 1,
  160. pageSize: 10,
  161. code: ''
  162. },
  163. };
  164. },
  165. created() {
  166. const dataId = this.$route.params && this.$route.params.id;
  167. this.getList(dataId);
  168. },
  169. methods: {
  170. /** 查询字典数据列表 */
  171. getList(dataId) {
  172. this.queryParams.code = dataId;
  173. this.loading = true;
  174. listHistoryData(this.queryParams).then(response => {
  175. this.dataList = response.data.list;
  176. this.total = response.data.total;
  177. this.loading = false;
  178. });
  179. },
  180. /** 详情按钮操作 */
  181. handleDetail(row) {
  182. const id = row.id;
  183. getHistoryData(id).then(response => {
  184. this.form = response.data;
  185. this.openDetail = true;
  186. this.title = "详情";
  187. });
  188. },
  189. }
  190. };
  191. </script>
  192. <style lang="scss" scoped>
  193. .widget-wrapper>.widget-list {
  194. display: flex;
  195. flex-wrap: wrap;
  196. }
  197. .x-grid-col-6 {
  198. width: 50%;
  199. }
  200. .x-grid-col-12 {
  201. width: 100%;
  202. }
  203. .fx-field {
  204. line-height: 20px;
  205. padding: 7px 12px 12px;
  206. postId: relative;
  207. }
  208. .fx-field .field-label {
  209. word-wrap: break-word;
  210. color: #141e31;
  211. display: flex;
  212. font-weight: 600;
  213. line-height: 20px;
  214. padding: 5px 0;
  215. position: relative;
  216. word-break: break-word;
  217. }
  218. .fx-field .field-label .field-required {
  219. color: #eb5050;
  220. margin-left: -6px;
  221. position: relative;
  222. }
  223. .fx-field .field-label .field-name {
  224. overflow: hidden;
  225. }
  226. .field-component {
  227. word-wrap: break-word;
  228. background: #f5f6f8;
  229. border-radius: 2px;
  230. color: #141e31;
  231. font-size: 14px;
  232. line-height: 20px;
  233. min-height: 32px;
  234. padding: 6px 8px;
  235. white-space: pre-wrap;
  236. word-break: break-word;
  237. }
  238. ul {
  239. padding-left: 0px !important;
  240. }
  241. .el-tag+.el-tag {
  242. margin-left: 10px;
  243. }
  244. </style>