details.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <template>
  2. <div class="page">
  3. <el-form label-width="140px">
  4. <div class="content-detail">
  5. <div class="basic-details">
  6. <div class="basic-details-title">
  7. <span class="border-span">基本信息</span>
  8. </div>
  9. <el-row>
  10. <el-col :span="6">
  11. <el-form-item label="规则编码">
  12. <span> {{ infoData.code }} </span>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="6">
  16. <el-form-item label="规则名称">
  17. <span> {{ infoData.name }} </span>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="6">
  21. <el-form-item label="规则类型">
  22. <span>
  23. {{ getDictValue('规则类型', infoData.ruleType) }}
  24. </span>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="6">
  28. <el-form-item label="状态">
  29. <span class="primary-text" v-if="infoData.status">生效</span>
  30. <span class="danger-text" v-else-if="!infoData.status"
  31. >失效</span
  32. >
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="6">
  36. <el-form-item label="创建人">
  37. <span> {{ infoData.createUserName }} </span>
  38. </el-form-item>
  39. </el-col>
  40. <el-col :span="6">
  41. <el-form-item label="创建时间">
  42. <span> {{ infoData.createTime }} </span>
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="24">
  46. <el-form-item label="巡点检周期">
  47. <rule-cycle :formData="infoData" />
  48. </el-form-item>
  49. </el-col>
  50. <!-- <el-col :span="24">
  51. <el-form-item label="操作方式/注意事项">
  52. <el-link
  53. v-for="item in infoData.contentImage"
  54. @click="$fileSystemDownload(item)"
  55. :key="item.docId"
  56. >{{ item.name }}</el-link
  57. >
  58. </el-form-item>
  59. </el-col>-->
  60. </el-row>
  61. </div>
  62. <template v-if="!(infoData.ruleType && infoData.ruleType.code == 4)">
  63. <div class="basic-details-title">
  64. <span class="border-span">内容配置</span>
  65. </div>
  66. <el-table
  67. ref="multipleTable"
  68. :data="tableData"
  69. tooltip-effect="dark"
  70. style="width: 100%"
  71. border
  72. :header-cell-style="{ background: '#F0F3F3' }"
  73. >
  74. <el-table-column type="index" label="序号" width="60" />
  75. <el-table-column prop="name" label="检测事项" />
  76. <el-table-column prop="content" label="检测内容" />
  77. <el-table-column prop="norm" label="检测标准" />
  78. </el-table>
  79. </template>
  80. </div>
  81. <div class="content-detail" v-show="num == 2"></div>
  82. </el-form>
  83. </div>
  84. </template>
  85. <script>
  86. import dictMixins from '@/mixins/dictMixins';
  87. import RuleCycle from './components/rule-cycle';
  88. import { getDetail } from '@/api/ruleManagement/matter';
  89. export default {
  90. mixins: [dictMixins],
  91. components: { RuleCycle },
  92. data() {
  93. return {
  94. num: 1,
  95. dialogVisible: false,
  96. infoData: {},
  97. form: {},
  98. type: [],
  99. tableData: [],
  100. ruleTypeObj: {
  101. 1: '巡点检规则',
  102. 2: '保养规则',
  103. 4: '盘点规则'
  104. }
  105. };
  106. },
  107. async created() {
  108. this.getInfo();
  109. this.requestDict('规则类型');
  110. },
  111. methods: {
  112. delete() {},
  113. // 点击切换事件
  114. tab(index) {
  115. this.num = index;
  116. },
  117. // 表格数据
  118. async getInfo() {
  119. const data = await getDetail(this.$route.query.id);
  120. this.tableData = data.ruleItems;
  121. this.infoData = data;
  122. }
  123. }
  124. };
  125. </script>
  126. <style lang="scss" scoped>
  127. .page {
  128. padding: 10px;
  129. }
  130. .page-title {
  131. background: #fff;
  132. font-size: 18px;
  133. padding: 6px 20px;
  134. font-weight: 500;
  135. .page-title-div {
  136. margin: 5px 0;
  137. height: 30px;
  138. line-height: 30px;
  139. border-bottom: 1px solid #eaeefb;
  140. .title-div-no {
  141. margin-left: 10px;
  142. font-weight: 400;
  143. color: #909090;
  144. font-size: 14px;
  145. }
  146. }
  147. }
  148. .page-data {
  149. padding-top: 10px;
  150. }
  151. .content-detail {
  152. background: #fff;
  153. padding: 20px;
  154. }
  155. .flows {
  156. .flow-left {
  157. width: 156px;
  158. height: 70px;
  159. border: 1px dashed #ccc;
  160. padding: 10px;
  161. }
  162. .row {
  163. margin-top: 13px;
  164. }
  165. }
  166. .basic-details-title {
  167. margin-bottom: 12px;
  168. margin-top: 20px;
  169. border-bottom: 1px solid #1890ff;
  170. padding-bottom: 8px;
  171. display: flex;
  172. justify-content: space-between;
  173. }
  174. .basic-details-title .border-span {
  175. height: 18px;
  176. font-size: 16px;
  177. border-left: 4px solid #1890ff;
  178. padding-left: 8px;
  179. font-weight: 500;
  180. }
  181. .heade-right {
  182. // float: right;
  183. .heade-right-content {
  184. margin-right: 12px;
  185. font-size: 14px;
  186. display: inline-block;
  187. .content-key {
  188. color: #3e3e3e;
  189. margin-right: 12px;
  190. font-weight: 500;
  191. }
  192. .content-value {
  193. color: #000;
  194. }
  195. }
  196. }
  197. .list-title {
  198. font-size: 14px;
  199. color: #3e3e3e;
  200. margin: 10px 0px;
  201. }
  202. .goods {
  203. background: #a30014;
  204. border: 1px solid #a30014;
  205. }
  206. .details-title {
  207. display: inline-block;
  208. color: #6e6e6e;
  209. font-size: 14px;
  210. font-weight: bold;
  211. margin-right: 13px;
  212. width: 70px;
  213. text-align: right;
  214. }
  215. .details-con {
  216. color: #3e3e3e;
  217. font-size: 14px;
  218. }
  219. .detailed-tab {
  220. margin-left: 10px;
  221. margin-top: 10px;
  222. }
  223. ::v-deep .el-form-item--medium .el-form-item__label {
  224. color: #6e6e6e;
  225. font-size: 14px;
  226. font-weight: bold;
  227. }
  228. .warehouse {
  229. display: block;
  230. border-bottom: 1px solid #eaeefb;
  231. padding: 10px 0;
  232. }
  233. .box-card {
  234. .store-box {
  235. width: 80%;
  236. .store-box-span {
  237. display: inline-block;
  238. font-size: 14px;
  239. height: 50px;
  240. width: 50px;
  241. text-align: center;
  242. line-height: 50px;
  243. color: #fff;
  244. margin: 2px;
  245. }
  246. }
  247. }
  248. .vacant {
  249. background: #3196fb;
  250. }
  251. .inUse {
  252. background: #157a2c;
  253. }
  254. .invalid {
  255. background: #cccccc;
  256. }
  257. .full {
  258. background: #cc3300;
  259. }
  260. </style>