zouyu
2026-06-26 30a69ff085522db588c7781018f04c64a138a0f9
src/views/business/unpass/components/OAProcess.vue
@@ -11,7 +11,8 @@
      <el-timeline style="height: 80vh; overflow-y: scroll">
        <el-timeline-item
          placement="top"
          v-for="node in nodes"
          v-for="node in isOldData?oldNodes:newNodes"
          v-if="(node.classType && node.classType===classType) || node.classType==='-1'"
          :key="node.id"
          :timestamp="node.name"
          :icon="node.hasData ? 'el-icon-check' : 'el-icon-time'"
@@ -29,7 +30,7 @@
                <span class="value">{{ node.time || "-" }}</span>
              </div>
              <div class="detail-item">
                <span class="label">{{node.name && node.name==='1检验员'?'不合格描述:':'处理意见:'}}</span>
                <span class="label">{{node.infoTitle}}</span>
                <span class="value">{{ node.info || "-" }}</span>
              </div>
            </div>
@@ -52,16 +53,22 @@
      type: Boolean,
      default: () => false,
    },
    isOldData:{
      type: Boolean,
      default: () => true,
    }
  },
  data() {
    // 这里存放数据
    return {
      isShow: this.OAProcess,
      nodes: [
      //旧流程节点
      oldNodes: [
        {
          id: 1,
          name: "1检验员",
          info: "",
          infoTitle:"不合格情况描述:",
          time: "",
          operator: "",
          operation: "",
@@ -70,6 +77,7 @@
        {
          id: 2,
          name: "2检测主管确认",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -79,6 +87,7 @@
        {
          id: 3,
          name: "3物流部确认",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -88,6 +97,7 @@
        {
          id: 4,
          name: "4产品工程师处理意见",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -97,6 +107,7 @@
        {
          id: 5,
          name: "5.总工或者副经理的处理意见",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -106,6 +117,7 @@
        {
          id: 6,
          name: "6质量部处理意见",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -115,6 +127,7 @@
        {
          id: 7,
          name: "7质量部经理",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -124,6 +137,7 @@
        {
          id: 8,
          name: "8核算员",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -133,6 +147,7 @@
        {
          id: 9,
          name: "9物流部索赔结果",
          infoTitle:"处理意见:",
          info: "",
          time: "",
          operator: "",
@@ -140,11 +155,137 @@
          hasData: false,
        },
      ],
      //新流程节点
      newNodes:[
        {
          id: 1,
          classType: "-1",
          name: "1申请",
          info: "",
          infoTitle:"不合格情况描述:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 2,
          classType: "-1",
          name: "2质量经理",
          info: "",
          infoTitle:"对不合格产品的处理要求:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 3,
          classType: "0",
          name: "3工艺(一类不合格)",
          infoTitle:"改进要求:",
          info: "",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 4,
          classType: "1",
          name: "3工艺(二类不合格)",
          infoTitle:"改进要求:",
          info: "",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 5,
          classType: "0",
          name: "4技术经理(一类不合格)",
          info: "",
          infoTitle:"措施要求:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 6,
          classType: "1",
          name: "4技术经理(二类不合格)",
          info: "",
          infoTitle:"措施要求:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 7,
          classType: "0",
          name: "5核算(一类不合格)",
          info: "",
          infoTitle:"索赔要求(人民币RMB¥):",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 8,
          classType: "1",
          name: "5总经理(二类不合格)",
          info: "",
          infoTitle:"最终处理意见:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 9,
          classType: "0",
          name: "6归档(一类不合格)",
          info: "",
          infoTitle:"处理意见:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 10,
          classType: "1",
          name: "6核算(二类不合格)",
          info: "",
          infoTitle:"索赔要求(人民币RMB¥):",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
        {
          id: 11,
          classType: "1",
          name: "7归档(二类不合格)",
          info: "",
          infoTitle:"处理意见:",
          time: "",
          operator: "",
          operation: "",
          hasData: false,
        },
      ],
      classType:null,
    };
  },
  // 方法集合
  methods: {
    getInfo(id,unqualifiedDesc) {
    getInfo(id,unqualifiedDesc,classType) {
      if(classType)this.classType = classType;
      getOaFlow({
        id: id,
      })
@@ -153,10 +294,11 @@
            const data = res.data;
            if (data.length > 0) {
              data.forEach((item) => {
                const node = this.nodes.find((n) => n.name === item.nodeName);
                const nodes = this.isOldData ? this.oldNodes : this.newNodes;
                const node = nodes.find((n) => n.name === item.nodeName);
                if (node) {
                  node.time = item.approvalDate + " " + item.approvalTime;
                  if(item.nodeName && item.nodeName==="1检验员"){
                  if(item.nodeName && ['1检验员','1申请'].includes(item.nodeName)){
                    node.info=unqualifiedDesc;
                  }else{
                    node.info = item.approvalOpinion;
@@ -210,7 +352,7 @@
  font-weight: 500;
  color: #606266;
  margin-right: 8px;
  min-width: 90px;
  min-width: 110px;
}
.value {