zouyu
2023-11-10 65cd94b74a6dd5bae9bc2c3a98bc781d97099cb6
src/views/technology/routing/routing-form.vue
@@ -58,13 +58,13 @@
                  style="width: 280px"
                ></el-input>
              </el-form-item>
              <el-form-item prop="wireCore" label="线芯">
              <!-- <el-form-item prop="wireCore" label="线芯">
                <el-input
                  v-model="dataForm.wireCore"
                  placeholder="线芯"
                  style="width: 60px"
                ></el-input>
              </el-form-item>
              </el-form-item> -->
              <el-form-item label="BOM" prop="bomId">
                <el-select v-model="dataForm.bomId" placeholder="" filterable>
                  <el-option
@@ -97,7 +97,7 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="逐步采用日期" prop="phaseInDate">
              <!-- <el-form-item label="逐步采用日期" prop="phaseInDate">
                <el-date-picker
                  v-model="dataForm.phaseInDate"
                  style="width: 100%"
@@ -114,8 +114,8 @@
                  value-format="yyyy-MM-dd HH:mm:ss"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item prop="alternativeNo" label="替代">
              </el-form-item> -->
              <!-- <el-form-item prop="alternativeNo" label="替代">
                <el-input
                  v-model="dataForm.alternativeNo"
                  placeholder="替代"
@@ -135,7 +135,7 @@
              </el-form-item>
              <el-form-item label="主工艺" prop="master">
                <el-switch v-model="dataForm.master"> </el-switch>
              </el-form-item>
              </el-form-item> -->
            </el-col>
          </el-row>
        </el-form>
@@ -494,119 +494,92 @@
                ></rich-text>
              </div>
            </el-tab-pane>
            <el-tab-pane label="工序参数" style="height: 100%">
              <el-card class="params-template">
                <div slot="header">
                  <span>参数集</span>
                  <el-button
                    style="float: right; padding: 3px 0"
                    type="text"
                    size="medium"
                    v-if="editable && dataForm.operations.length > 0"
                    @click="openTempalteDialog"
                    >添加
                  </el-button>
                </div>
                <el-table
                  ref="templateTable"
                  :data="operationTemplateList"
                  class="l-mes"
                  height="600"
                  highlight-current-row
                  @row-click="templateRowClick"
                >
                  <el-table-column
                    label="名称"
                    prop="operationTemplateName"
                    align="center"
                  >
                  </el-table-column>
                  <el-table-column
                    label="类型"
                    prop="operationTemplateType"
                    align="center"
                  >
                  </el-table-column>
                  <el-table-column label="操作" align="center">
                    <template slot-scope="scope">
            <el-tab-pane v-if="dataForm.id!=null" label="工序参数" style="height: 100%;">
              <el-row :gutter="10">
                <el-col :span="9">
                  <el-card class="params-template">
                    <div slot="header">
                      <span>参数集</span>
                      <el-button
                        style="float: right; padding: 3px 0"
                        type="text"
                        size="mini"
                        size="medium"
                        v-if="editable && dataForm.operations.length > 0"
                        @click.stop="
                          handleTemplateDelete(scope.row, scope.$index)
                        "
                        >删除
                        @click="openTempalteDialog"
                        >添加
                      </el-button>
                    </template>
                  </el-table-column>
                </el-table>
              </el-card>
              <el-card class="template-param">
                <div slot="header">
                  <span>参数</span>
                  <div style="float: right;">
                    <el-button
                      style="padding: 3px 0"
                      type="text"
                      size="medium"
                      v-if="editable && routingTemplateId != null"
                      @click="saveAllParamChange"
                      >保存
                    </el-button>
                    <el-button
                      style="padding: 3px 0"
                      type="text"
                      size="medium"
                      v-if="editable && routingTemplateId != null"
                      @click="openTempalteParamDialog"
                      >添加
                    </el-button>
                  </div>
                </div>
                <el-table :data="paramData" class="l-mes" height="600">
                  <el-table-column
                    label="参数项"
                    prop="parameterItem"
                    align="center"
                  >
                    <template slot-scope="scope">
                      <span
                        >{{ scope.row.parameterItem }}({{
                          scope.row.unit
                        }})</span
                    </div>
                    <el-table
                      ref="templateTable"
                      :data="operationTemplateList"
                      class="l-mes"
                      height="600"
                      highlight-current-row
                      @row-click="templateRowClick"
                    >
                      <el-table-column
                        label="名称"
                        prop="operationTemplateName"
                        align="center"
                      >
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="参数类型"
                    prop="type"
                    align="center"
                    :formatter="getParam"
                  >
                  </el-table-column>
                  <el-table-column label="值" prop="paramValue" align="center">
                    <template slot-scope="scope">
                      <el-input
                        v-model="scope.row.paramValue"
                        placeholder="值"
                        :disabled="!editable"
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column label="操作" align="center">
                    <template slot-scope="scope">
                      <el-button
                        type="text"
                        size="mini"
                        v-if="editable && routingTemplateId != null"
                        @click.stop="handleParamDelete(scope.row, scope.$index)"
                        >删除
                      </el-button>
                    </template>
                  </el-table-column>
                </el-table>
              </el-card>
                      </el-table-column>
                      <el-table-column
                        label="类型"
                        prop="operationTemplateType"
                        align="center"
                      >
                      </el-table-column>
                      <el-table-column label="操作" align="center">
                        <template slot-scope="scope">
                          <el-button
                            type="text"
                            size="mini"
                            v-if="editable && dataForm.operations.length > 0"
                            @click.stop="
                              handleTemplateDelete(scope.row, scope.$index)
                            "
                            >删除
                          </el-button>
                        </template>
                      </el-table-column>
                    </el-table>
                  </el-card>
                </el-col>
                <el-col :span="15">
                  <el-card class="template-param">
                    <div slot="header">
                      <span>参数</span>
                      <div style="float: right;">
                        <el-button
                          style="padding: 3px 0"
                          type="text"
                          size="medium"
                          v-if="editable && routingTemplateId != null"
                          @click="saveAllParamChange"
                          >保存
                        </el-button>
                        <el-button
                          style="padding: 3px 0"
                          type="text"
                          size="medium"
                          v-if="editable && routingTemplateId != null"
                          @click="openTempalteParamDialog"
                          >添加
                        </el-button>
                      </div>
                    </div>
                    <div>
                    <component
                    :is="paramMergeTemplate"
                    :key="isShowTree"
                    :tableTreeData="paramData"
                    :routingTemplateId="routingTemplateId"
                    :handleParamDelete="handleParamDelete"
                    ></component>
                    </div>
                  </el-card>
                </el-col>
              </el-row>
            </el-tab-pane>
          </el-tabs>
        </div>
@@ -659,6 +632,7 @@
} from '@/api/technology/routing'
import { fetchList as getBomList } from '@/api/technology/completeproductstructure'
import { getByOperation } from '@/api/aps/capability'
import { fetchListByFather} from '@/api/basic/param'
import { remote } from '@/api/admin/dict'
import diagram from './diagram'
import operationDialog from '@/views/common/operation.vue'
@@ -671,6 +645,7 @@
import ElRow from 'element-ui/packages/row/src/row'
import ElCol from 'element-ui/packages/col/src/col'
import { getOperationParam } from '../../../api/basic/template'
import paramMergeTemplate from '../../common/param-mergeTemplate.vue'
import zttdraggable from 'vuedraggable'
const capabilityArray = [
@@ -686,7 +661,9 @@
export default {
  data() {
    return {
      paramMergeTemplate: '',
      itemKey: '',
      isShowTree: false,
      typeOptions: [],
      paramTemplateSelArr: [],
      paramTemplateSelCol: 'operationTemplateNo',
@@ -771,7 +748,8 @@
    operationPartDialog,
    RichText,
    editRoutingOperation,
    zttdraggable
    zttdraggable,
    paramMergeTemplate
  },
  mounted() {
    window.addEventListener(
@@ -1059,6 +1037,12 @@
    },
    // 参数集模板点击事件
    templateRowClick(row) {
      if(this.isShowTree){
        this.isShowTree=false
      }else{
        this.isShowTree=true
      }
      this.paramData=[]
      this.getRoutingTemplateParam(row.id)
    },
    // 根据工艺、工序id、模板id去获取模板下的参数
@@ -1071,7 +1055,9 @@
        })
      ).then((response) => {
        if (response.data.data.length > 0) {
          this.paramData = []
          this.paramData = response.data.data
          this.paramMergeTemplate = 'paramMergeTemplate'
        } else {
          this.paramData = []
        }
@@ -1376,6 +1362,17 @@
    // 模板参数的选中结果返回
    selectTemplateParam(param) {
      // console.log(param);
      // let idList=[]
      // param.forEach(item=>{
      //   idList.push(item.id)
      // })
      // console.log(idList);
      // let formData=new FormData()
      // formData.append("idList",idList)
      // fetchListByFather(formData).then((res) => {
      //   console.log(res);
      // })
      if (param.length > 0) {
        const paramrrs = {
          id: this.dataForm.id,
@@ -1387,9 +1384,7 @@
          const data = response.data
          if (data.code == 0) {
            const newParams = response.data.data
            for (let i = 0; i < newParams.length; i++) {
              this.paramData.push(newParams[i])
            }
            console.log(newParams);
            this.$message.success('添加成功')
          } else {
            this.$message.error('添加失败')
@@ -1400,13 +1395,23 @@
    // 删除参数
    handleParamDelete(row, index) {
      this.$confirm('是否确认删除参数项为' + row.parameterItem, '提示', {
      this.$confirm('是否确认删除参数项为【' + row.paramItem +'】的数据?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      })
        .then(function() {
          return deleteRoutingTemplateParam(row.id)
          let id = null
          if(row.treeId && row.treeId!='null'){
            id = row.treeId
          }else{
            if(row.twoId && row.twoId!='null'){
              id = row.twoId
            }else{
              id = row.oneId
            }
          }
          return deleteRoutingTemplateParam(id)
        })
        .then((response) => {
          const data = response.data
@@ -1434,7 +1439,24 @@
    },
    // 保存所有参数的修改
    saveAllParamChange() {
      const paramJson = { routingOperationParam: this.paramData }
      let data = []
      this.paramData.forEach(ele=>{
        let o = {
          id: null,
          paramValue: ele.paramValue
        }
        if(ele.threeId && ele.threeId != 'null'){
          o.id = ele.threeId
        }else{
          if(ele.twoId && ele.twoId != 'null'){
            o.id = ele.twoId
          }else{
            o.id = ele.oneId
          }
        }
        data.push(o)
      })
      const paramJson = { routingOperationParam: data }
      putRoutingTemplateParam(paramJson).then((response) => {
        const data = response.data
        if (data.code == 0) {
@@ -1583,18 +1605,14 @@
}
.params-template {
  float: left;
  background-color: #fff;
  width: 40%;
  height: 687px;
  padding: 10px 0px;
  border: 1px solid #ddd;
}
.template-param {
  float: right;
  background-color: #fff;
  width: calc(60% - 10px);
  height: 687px;
  padding: 10px 0px;
  border: 1px solid #ddd;