workOrderPublish.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. <div class="ele-body">
  3. <el-card shadow="never">
  4. <div class="page-title">
  5. <el-page-header @back="$router.go(-1)" content="发布工单">
  6. </el-page-header>
  7. </div>
  8. <el-descriptions title="" :column="6" border>
  9. <el-descriptions-item label="计划编号"
  10. >kooriookami</el-descriptions-item
  11. >
  12. <el-descriptions-item label="计划类型"
  13. >18100000000</el-descriptions-item
  14. >
  15. <el-descriptions-item label="产品编码">苏州市</el-descriptions-item>
  16. <el-descriptions-item label="牌号">苏州市</el-descriptions-item>
  17. <el-descriptions-item label="型号">苏州市</el-descriptions-item>
  18. <el-descriptions-item label="生产版本">苏州市</el-descriptions-item>
  19. <el-descriptions-item label="工艺路线名称">苏州市</el-descriptions-item>
  20. <el-descriptions-item label="工艺路线版本">苏州市</el-descriptions-item>
  21. <el-descriptions-item label="产品数量">苏州市</el-descriptions-item>
  22. <el-descriptions-item label="产品重量">苏州市</el-descriptions-item>
  23. <el-descriptions-item label="要求成型数量">苏州市</el-descriptions-item>
  24. <el-descriptions-item label="要求成型重量">苏州市</el-descriptions-item>
  25. </el-descriptions>
  26. <div class="rules-box">
  27. <div class="rule-label">工单生成规则</div>
  28. <div class="rule-wrapper">
  29. <div class="content">
  30. <div class="select-box" v-for="(item, index) in rules" :key="index">
  31. <el-radio-group v-model="item.value" v-if="item.type === 'radio'">
  32. <el-radio
  33. v-for="(itm, idx) in item.list"
  34. :key="idx"
  35. :label="itm.label"
  36. ></el-radio>
  37. </el-radio-group>
  38. <el-checkbox-group v-model="item.value" v-else>
  39. <el-checkbox
  40. v-for="(itm, idx) in item.list"
  41. :key="idx"
  42. :label="itm.label"
  43. :disabled="
  44. itm.lastDisabled
  45. ? item.value.length < item.list.length - 1
  46. : false
  47. "
  48. ></el-checkbox>
  49. </el-checkbox-group>
  50. </div>
  51. </div>
  52. <div class="btn-box">
  53. <el-tooltip
  54. placement="top-start"
  55. title="标题"
  56. width="200"
  57. trigger="hover"
  58. content="这是一段内容,这是一段内容,这是一段内容,这是一段内容。"
  59. >
  60. <el-button type="text" icon="el-icon-question"></el-button>
  61. </el-tooltip>
  62. <el-button type="primary" plain>一键生成方案</el-button>
  63. </div>
  64. </div>
  65. </div>
  66. <el-tabs v-model="activeName" type="card">
  67. <el-tab-pane label="默认" name="first"
  68. ><planView key="first"
  69. /></el-tab-pane>
  70. <el-tab-pane
  71. v-for="(item, index) in planList"
  72. :label="item.label"
  73. :name="index"
  74. ><planView :key="index"
  75. /></el-tab-pane>
  76. </el-tabs>
  77. </el-card>
  78. </div>
  79. </template>
  80. <script>
  81. import planView from './components/plan-view';
  82. export default {
  83. components: { planView },
  84. data () {
  85. return {
  86. activeName: 'first',
  87. planList: [],
  88. rules: [
  89. {
  90. type: 'radio',
  91. value: '',
  92. list: [
  93. { label: '多设备优先', value: 0 },
  94. { label: '多班次优先', value: 1 }
  95. ]
  96. },
  97. {
  98. type: 'checked',
  99. value: [],
  100. list: [
  101. { label: '设备产能优先', value: 0 },
  102. { label: '最早开始时间优先', value: 1 },
  103. { label: '开始时间优先', value: 2, lastDisabled: true }
  104. ]
  105. },
  106. {
  107. type: 'checked',
  108. value: [],
  109. list: [
  110. { label: '非空闲设备可用', value: 0 },
  111. { label: '检修设备可用', value: 1 },
  112. { label: '检修设备优先', value: 1, lastDisabled: true }
  113. ]
  114. },
  115. {
  116. type: 'radio',
  117. value: '',
  118. list: [{ label: '末单均衡', value: 0 }]
  119. }
  120. ]
  121. };
  122. }
  123. };
  124. </script>
  125. <style lang="scss" scoped>
  126. .rules-box {
  127. padding: 20px 0;
  128. display: flex;
  129. justify-content: space-between;
  130. .rule-label {
  131. font-size: 18px;
  132. font-weight: bold;
  133. }
  134. .rule-wrapper {
  135. flex: 1;
  136. display: flex;
  137. justify-content: space-between;
  138. align-items: flex-start;
  139. .content {
  140. flex: 1;
  141. display: flex;
  142. flex-wrap: wrap;
  143. align-items: center;
  144. padding: 0 10px;
  145. .select-box {
  146. border: 1px solid #ccc;
  147. padding: 5px 10px;
  148. margin: 0 10px 10px 0;
  149. }
  150. }
  151. .btn-box {
  152. display: flex;
  153. justify-content: space-between;
  154. width: 160px;
  155. }
  156. }
  157. }
  158. </style>