工单小程序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.

282 lines
5.6 KiB

5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 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 class="Work-List"
  97. >
  98. <view class="label">
  99. 备注
  100. </view>
  101. <view class="text">
  102. <input type="text"
  103. style="width: 450rpx;"
  104. v-model="w.remark"/>
  105. </view>
  106. </view>
  107. </view>
  108. </view>
  109. </view>
  110. </view>
  111. <view class="uni-color-btn"
  112. @click="submit">
  113. 保存
  114. </view>
  115. </view>
  116. </template>
  117. <script>
  118. export default {
  119. data() {
  120. return {
  121. id: 0,
  122. StepOne: {},
  123. stepList : [],
  124. index : 0,
  125. title : '',
  126. }
  127. },
  128. onLoad(arg) {
  129. this.id = arg.id
  130. this.index = arg.index || 0
  131. this.title = arg.name
  132. this.queryStepOne()
  133. this.queryTemplateById()
  134. },
  135. methods: {
  136. queryStepOne() {
  137. this.$api('queryStepOne', {
  138. templateId: this.id
  139. }, res => {
  140. if (res.code == 200) {
  141. this.StepOne = res.result.workorderGeneralStepone
  142. }
  143. })
  144. },
  145. // 根据id获取工单详情
  146. queryTemplateById(){
  147. this.$api('queryTemplateById', {
  148. templateId : this.id
  149. }, res =>{
  150. if(res.code == 200){
  151. let p = res.result.workorderStepList[this.index]
  152. this.stepList = p.workorderProcessList
  153. }
  154. })
  155. },
  156. //工单信息-修改工序参数-工序卡1(选配)
  157. updateParamStepOne(item){
  158. return new Promise((success, error) => {
  159. let data = JSON.parse(JSON.stringify(item))
  160. delete data.updateBy
  161. delete data.updateTime
  162. delete data.createBy
  163. delete data.createTime
  164. this.$api('updateParamStepOne', data, res => {
  165. if(res.code == 200){
  166. success(res)
  167. }else{
  168. error(res)
  169. }
  170. })
  171. })
  172. },
  173. async submit(){
  174. console.log(this.stepList);
  175. let StepOne = JSON.parse(JSON.stringify(this.StepOne))
  176. delete StepOne.updateBy
  177. delete StepOne.updateTime
  178. delete StepOne.createBy
  179. delete StepOne.createTime
  180. // 修改常规参数
  181. this.$api('updateGeneralStepOne', StepOne, res => {
  182. })
  183. uni.showToast({
  184. title: '保存中...',
  185. icon: 'none'
  186. })
  187. // 任务列表
  188. let tasks = []
  189. for(let i = 0;i < this.stepList.length;i++){
  190. let step = this.stepList[i]
  191. for(let j = 0;j < step.workorderItemCheckList.length;j++){
  192. let check = step.workorderItemCheckList[j]
  193. for(let k = 0;k < check.workorderParamSteponeList.length;k++){
  194. let params = check.workorderParamSteponeList[k]
  195. // 将请求添加到任务
  196. tasks.push(this.updateParamStepOne(params))
  197. }
  198. }
  199. }
  200. // 等待任务所有完成
  201. await Promise.all(tasks)
  202. uni.showToast({
  203. title: '保存成功',
  204. icon: 'none'
  205. })
  206. setTimeout(uni.navigateBack, 1000, -1)
  207. },
  208. }
  209. }
  210. </script>
  211. <style scoped lang="scss">
  212. .page{
  213. padding-bottom: 200rpx;
  214. .Work-List{
  215. display: flex;
  216. padding: 16rpx 0rpx;
  217. align-items: center;
  218. .label{
  219. width: 200rpx;
  220. flex-shrink: 0;
  221. }
  222. .text{
  223. input{
  224. background-color: #eee;
  225. padding: 10rpx 20rpx;
  226. border-radius: 20rpx;
  227. }
  228. }
  229. }
  230. .info{
  231. padding: 30rpx;
  232. input{
  233. width: 430rpx;
  234. }
  235. }
  236. .list{
  237. padding: 0 30rpx;
  238. .list-box{
  239. padding: 20rpx 0;
  240. padding-left: 40rpx;
  241. .item-input{
  242. padding-left: 40rpx;
  243. .label{
  244. width: 130rpx;
  245. }
  246. }
  247. }
  248. input{
  249. width: 320rpx;
  250. }
  251. }
  252. }
  253. </style>