|
|
- <template>
- <view class="page">
- <navbar :title="title" leftClick @leftClick="$utils.navigateBack" />
- <view class="info">
-
- <view class="Work-List">
- <view class="label">
- 部件名:
- </view>
- <view class="text">
- <input type="text" v-model="StepOne.component"/>
- </view>
- </view>
-
- <view class="Work-List">
- <view class="label">
- 研发确认:
- </view>
- <view class="text">
- <input type="text" v-model="StepOne.comfirmDevelop"/>
- </view>
- </view>
-
- <view class="Work-List">
- <view class="label">
- 品质确认:
- </view>
- <view class="text">
- <input type="text" v-model="StepOne.comfirmQuality"/>
- </view>
- </view>
-
- <view class="Work-List">
- <view class="label">
- 中试确认:
- </view>
- <view class="text">
- <input type="text" v-model="StepOne.comfirmTrial"/>
- </view>
- </view>
-
- <!-- <view class="Work-List">
- <view class="label">
- 备注:
- </view>
- <view class="text">
- <input type="text" v-model="StepOne.remark"/>
- </view>
- </view> -->
-
- </view>
-
- <view class="list">
-
- <view class="item-box"
- :key="stepIndex"
- v-for="(step, stepIndex) in stepList">
- <view class="title">
- {{ step.name }}
- </view>
-
- <view class="list-box"
- :key="cIndex"
- v-for="(c, cIndex) in step.workorderItemCheckList">
- <view class="title">
- {{ c.name }}
- </view>
-
- <view class="item-input"
- :key="wi"
- v-for="(w, wi) in c.workorderParamStepfourList"
- >
-
- <!-- <uv-upload
- :fileList="w.fileList"
- :maxCount="10"
- multiple
- width="150rpx"
- height="150rpx"
- @delete="e => deleteImage(e, w)"
- @afterRead="e => afterRead(e, w)"
- :previewFullImage="true"></uv-upload> -->
-
- <view class="image-box">
- <view class="image"
- :key="xi"
- v-for="(x, xi) in 10">
-
- <image
- v-if="w['param' + (xi + 1)]"
- :src="w['param' + (xi + 1)]"
- @click="previewImage([w['param' + (xi + 1)]], 0)"
- mode="aspectFill"></image>
-
- <view class="add-image"
- v-else
- @click="upload(w, 'param' + (xi + 1))">
- <uv-icon
- size="40rpx"
- name="plus"
- color="#00000022"
- ></uv-icon>
- </view>
-
- <view class="delete"
- @click="del(w, 'param' + (xi + 1))"
- v-if="w['param' + (xi + 1)]">
- x
- </view>
-
- </view>
- </view>
-
- <view class="Work-List"
- >
- <view class="label">
- 作业员:
- </view>
- <view class="text">
- <input type="text"
- style="width: 450rpx;"
- v-model="w.operator"/>
- </view>
- </view>
- </view>
- </view>
- </view>
-
- </view>
-
- <view class="uni-color-btn"
- @click="submit">
- 保存
- </view>
- </view>
- </template>
-
- <script>
- export default {
- data() {
- return {
- id: 0,
- StepOne: {},
- stepList : [],
- index : 1,
- title : '',
- }
- },
- onLoad(arg) {
- this.id = arg.id
- this.index = arg.index || 2
- this.title = arg.name
- this.queryStepFour()
- this.queryTemplateById()
- },
- methods: {
- queryStepFour() {
- this.$api('queryStepFour', {
- templateId: this.id
- }, res => {
- if (res.code == 200) {
- this.StepOne = res.result.workorderGeneralStepfour
- }
- })
- },
- // 根据id获取工单详情
- queryTemplateById(){
- this.$api('queryTemplateById', {
- templateId : this.id
- }, res =>{
- if(res.code == 200){
- let p = res.result.workorderStepList[this.index]
-
- // for(let i = 0;i < p.workorderProcessList.length;i++){
- // let step = p.workorderProcessList[i]
- // for(let j = 0;j < step.workorderItemCheckList.length;j++){
- // let check = step.workorderItemCheckList[j]
-
- // for(let k = 0;k < check.workorderParamStepfourList.length;k++){
- // let params = check.workorderParamStepfourList[k]
-
- // params.fileList = []
-
- // for(let p = 0;p < 10;p++){
- // let url = params['param' + (p + 1)]
- // if(url){
- // params.fileList.push({
- // url
- // })
- // }
- // }
-
- // }
- // }
- // }
-
- this.stepList = p.workorderProcessList
- }
- })
- },
- //工单信息-修改工序参数-工序卡1(选配)
- updateParamStepOne(item){
- return new Promise((success, error) => {
-
- let data = JSON.parse(JSON.stringify(item))
-
- delete data.updateBy
- delete data.updateTime
- delete data.createBy
- delete data.createTime
-
- this.$api('updateParamStepFour', data, res => {
- if(res.code == 200){
- success(res)
- }else{
- error(res)
- }
- })
- })
- },
- async submit(){
- console.log(this.stepList);
-
- let StepOne = JSON.parse(JSON.stringify(this.StepOne))
-
- delete StepOne.updateBy
- delete StepOne.updateTime
- delete StepOne.createBy
- delete StepOne.createTime
-
- // 修改常规参数
- this.$api('updateGeneralStepFour', StepOne, res => {
- })
-
- uni.showToast({
- title: '保存中...',
- icon: 'none'
- })
-
- // 任务列表
- let tasks = []
-
- for(let i = 0;i < this.stepList.length;i++){
- let step = this.stepList[i]
- for(let j = 0;j < step.workorderItemCheckList.length;j++){
- let check = step.workorderItemCheckList[j]
-
- for(let k = 0;k < check.workorderParamStepfourList.length;k++){
- let params = check.workorderParamStepfourList[k]
- // 将请求添加到任务
- tasks.push(this.updateParamStepOne(params))
- }
- }
- }
-
- // 等待任务所有完成
- await Promise.all(tasks)
-
- uni.showToast({
- title: '保存成功',
- icon: 'none'
- })
-
- setTimeout(uni.navigateBack, 1000, -1)
- },
- upload(w, key){
- this.$Oss.ossUploadImage({
- success : url => {
- w[key] = url
- }
- })
- },
- del(w, key){
- w[key] = ''
- },
- // deleteImage(e, w){
- // w.fileList.splice(e.index, 1)
- // },
- // afterRead(e, w){
- // let self = this
- // e.file.forEach(file => {
- // self.$Oss.ossUpload(file.url).then(url => {
- // w.fileList.push({
- // url
- // })
- // })
- // })
- // },
- }
- }
- </script>
-
- <style scoped lang="scss">
- .page{
- padding-bottom: 200rpx;
- .Work-List{
- display: flex;
- padding: 16rpx 0rpx;
- align-items: center;
- .label{
- width: 200rpx;
- flex-shrink: 0;
- }
- .text{
- input{
- background-color: #eee;
- padding: 10rpx 20rpx;
- border-radius: 20rpx;
- }
- }
- }
- .info{
- padding: 30rpx;
- input{
- width: 430rpx;
- }
- }
- .list{
- padding: 0 30rpx;
- .list-box{
- padding: 20rpx 0;
- padding-left: 40rpx;
- .item-input{
- padding-left: 40rpx;
- .label{
- width: 130rpx;
- }
-
- .image-box{
- display: flex;
- width: 100%;
- flex-shrink: 0;
- flex-wrap: wrap;
- .image{
- width: 100rpx;
- height: 100rpx;
- margin: 10rpx;
- position: relative;
- image{
- width: 100%;
- height: 100%;
- border-radius: 20rpx;
- }
- .add-image{
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- border: 1rpx solid #00000022;
- border-radius: 20rpx;
- }
- .delete{
- width: 30rpx;
- height: 30rpx;
- background-color: #00000066;
- color: #fff;
- position: absolute;
- right: 0;
- top: 0;
- font-size: 22rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- }
- }
- }
- }
- input{
- width: 320rpx;
- }
- }
- }
- </style>
|