工单小程序2024-11-20
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

270 lines
5.3 KiB

6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
  1. <template>
  2. <view class="page">
  3. <navbar :title="title" leftClick @leftClick="$utils.navigateBack" />
  4. <view class="info">
  5. <view class="Work-List">
  6. <view class="label">
  7. 中试作业员
  8. </view>
  9. <view class="text">
  10. <input type="text" v-model="StepOne.operator"/>
  11. </view>
  12. </view>
  13. <view class="Work-List">
  14. <view class="label">
  15. 气缸料号1
  16. </view>
  17. <view class="text">
  18. <input type="text" v-model="StepOne.cylinder1"/>
  19. </view>
  20. </view>
  21. <view class="Work-List">
  22. <view class="label">
  23. 气缸料号2
  24. </view>
  25. <view class="text">
  26. <input type="text" v-model="StepOne.cylinder2"/>
  27. </view>
  28. </view>
  29. <view class="Work-List">
  30. <view class="label">
  31. 活塞料号1
  32. </view>
  33. <view class="text">
  34. <input type="text" v-model="StepOne.piston1"/>
  35. </view>
  36. </view>
  37. <view class="Work-List">
  38. <view class="label">
  39. 活塞料号2
  40. </view>
  41. <view class="text">
  42. <input type="text" v-model="StepOne.piston2"/>
  43. </view>
  44. </view>
  45. <view class="Work-List">
  46. <view class="label">
  47. 滑片料号1
  48. </view>
  49. <view class="text">
  50. <input type="text" v-model="StepOne.scribing1"/>
  51. </view>
  52. </view>
  53. <view class="Work-List">
  54. <view class="label">
  55. 滑片料号2
  56. </view>
  57. <view class="text">
  58. <input type="text" v-model="StepOne.scribing2"/>
  59. </view>
  60. </view>
  61. </view>
  62. <view class="list">
  63. <view class="item-box"
  64. :key="stepIndex"
  65. v-for="(step, stepIndex) in stepList">
  66. <view class="title">
  67. {{ step.name }}
  68. </view>
  69. <view class="list-box"
  70. :key="cIndex"
  71. v-for="(c, cIndex) in step.workorderItemCheckList">
  72. <view class="title">
  73. {{ c.name }}
  74. </view>
  75. <view class="item-input"
  76. :key="wi"
  77. v-for="(w, wi) in c.workorderParamSteponeList"
  78. >
  79. <view class="Work-List"
  80. :key="xi"
  81. v-for="(x, xi) in 20"
  82. >
  83. <view class="label">
  84. 规格{{ xi + 1 }}
  85. </view>
  86. <view class="text">
  87. <input type="text"
  88. v-model="w['param' + (xi + 1)]"/>
  89. </view>
  90. <view class="text"
  91. v-if=""
  92. style="margin-left: 20rpx;">
  93. {{ w.specs }}
  94. </view>
  95. </view>
  96. </view>
  97. </view>
  98. </view>
  99. </view>
  100. <view class="uni-color-btn"
  101. @click="submit">
  102. 保存
  103. </view>
  104. </view>
  105. </template>
  106. <script>
  107. export default {
  108. data() {
  109. return {
  110. id: 0,
  111. StepOne: {},
  112. stepList : [],
  113. index : 1,
  114. title : '',
  115. }
  116. },
  117. onLoad(arg) {
  118. this.id = arg.id
  119. this.index = arg.index || 1
  120. this.title = arg.name
  121. this.queryStepOne()
  122. this.queryTemplateById()
  123. },
  124. methods: {
  125. queryStepOne() {
  126. this.$api('queryStepOne', {
  127. templateId: this.id
  128. }, res => {
  129. if (res.code == 200) {
  130. this.StepOne = res.result.workorderGeneralStepone
  131. }
  132. })
  133. },
  134. // 根据id获取工单详情
  135. queryTemplateById(){
  136. this.$api('queryTemplateById', {
  137. templateId : this.id
  138. }, res =>{
  139. if(res.code == 200){
  140. let p = res.result.workorderStepList[this.index]
  141. this.stepList = p.workorderProcessList
  142. }
  143. })
  144. },
  145. //工单信息-修改工序参数-工序卡1(选配)
  146. updateParamStepOne(item){
  147. return new Promise((success, error) => {
  148. let data = JSON.parse(JSON.stringify(item))
  149. delete data.updateBy
  150. delete data.updateTime
  151. delete data.createBy
  152. delete data.createTime
  153. this.$api('updateParamStepOne', data, res => {
  154. if(res.code == 200){
  155. success(res)
  156. }else{
  157. error(res)
  158. }
  159. })
  160. })
  161. },
  162. async submit(){
  163. console.log(this.stepList);
  164. let StepOne = JSON.parse(JSON.stringify(this.StepOne))
  165. delete StepOne.updateBy
  166. delete StepOne.updateTime
  167. delete StepOne.createBy
  168. delete StepOne.createTime
  169. // 修改常规参数
  170. this.$api('updateGeneralStepOne', StepOne, res => {
  171. })
  172. uni.showToast({
  173. title: '保存中...',
  174. icon: 'none'
  175. })
  176. // 任务列表
  177. let tasks = []
  178. for(let i = 0;i < this.stepList.length;i++){
  179. let step = this.stepList[i]
  180. for(let j = 0;j < step.workorderItemCheckList.length;j++){
  181. let check = step.workorderItemCheckList[j]
  182. for(let k = 0;k < check.workorderParamSteponeList.length;k++){
  183. let params = check.workorderParamSteponeList[k]
  184. // 将请求添加到任务
  185. tasks.push(this.updateParamStepOne(params))
  186. }
  187. }
  188. }
  189. // 等待任务所有完成
  190. await Promise.all(tasks)
  191. uni.showToast({
  192. title: '保存成功',
  193. icon: 'none'
  194. })
  195. setTimeout(uni.navigateBack, 1000, -1)
  196. },
  197. }
  198. }
  199. </script>
  200. <style scoped lang="scss">
  201. .page{
  202. padding-bottom: 200rpx;
  203. .Work-List{
  204. display: flex;
  205. padding: 16rpx 0rpx;
  206. align-items: center;
  207. .label{
  208. width: 200rpx;
  209. flex-shrink: 0;
  210. }
  211. .text{
  212. input{
  213. background-color: #eee;
  214. padding: 10rpx 20rpx;
  215. border-radius: 20rpx;
  216. }
  217. }
  218. }
  219. .info{
  220. padding: 30rpx;
  221. input{
  222. width: 430rpx;
  223. }
  224. }
  225. .list{
  226. padding: 0 30rpx;
  227. .list-box{
  228. padding: 20rpx 0;
  229. padding-left: 40rpx;
  230. .item-input{
  231. padding-left: 40rpx;
  232. .label{
  233. width: 130rpx;
  234. }
  235. }
  236. }
  237. input{
  238. width: 320rpx;
  239. }
  240. }
  241. }
  242. </style>