<template>
	<div>
		<el-dialog v-dialogDrag title="工作流展示" :visible.sync="workflowVisible" width="80%" @close="handleCloseMessage" 
			destroy-on-close :modal-append-to-body="false" v-if="workflowVisible">
			<div class="contentTable">
        <el-table :data="wfeList.data" style="width: 100%">
          <el-table-column label="序号" width="80px">
						<template slot-scope="scope">
							{{ scope.$index+1 }}
						</template>
					</el-table-column>
          <el-table-column v-for="(item, index) in wfeList.columns" :label="item.label" :prop="item.prop" :key="index" :width="item.width">
            <template slot-scope="scope">
                <span v-if="item.prop==='srv'">
                {{ getCodelabel(scope.row[item.prop],"srvtxt") }}
              </span>
              <span v-else-if="item.prop==='sta'">
                {{ formatter(scope.row[item.prop]) }}
              </span>
              <span v-else>
                {{ scope.row[item.prop] }}
              </span>
            </template>
          </el-table-column>
        </el-table>
			</div>
		</el-dialog>
		<!-- 报文 -->
		<el-dialog v-dialogDrag :visible.sync="messageDetailVisible" center class="preview" destroy-on-close title="报文" 
			width="60%" :modal-append-to-body="false" v-if="messageDetailVisible">
				<div v-if="previewType === 'pdf'" style="height: 100%;">
					<object
						class="printEm"
						:data="viewPdfUrl+'#toolbar=0'"
						type="application/pdf"
						width="100%"
						height="100%"
					></object>
					<!-- <iframe :src="viewPdfUrl+'#toolbar=0'" frameborder="0" height="100%" width="100%"></iframe> -->
				</div>
			<div v-else>
				<pre v-html="textContext"></pre>
			</div>
		</el-dialog>
	</div>
</template>
<script>
import Api from "~/service/Api";

export default {
  props: {
    visible: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
			workflowVisible: false,
      messageData: [],
      modelVisible: false,
      modelInfo: {},
      opType: "",
      messageDetailVisible: false,
      previewType: "",
      textContext: "",
      dbCodes:{
        srvtxt:[]
      },
       wfeList: {
        columns: [
          { label: "服务", prop: "wfssub" ,width:"110px" },
          { label: "名称", prop: "srv" ,width:"110px" },
          { label: "交易状态", prop: "sta" ,width:"110px" },
          { label: "最新更新", prop: "dattim" ,width:"180px" },
          { label: "重试", prop: "retdur" ,width:"110px" },
          {label: "目标时间",prop: "tardattim",width:"180px" },
          { label: "备注1", prop: "txt" ,width:"310px" },
          { label: "备注2", prop: "txt2" ,width:"210px" }
        ],
        data: []
      },
    };
  },
  mounted() {
    this.getdbCode('srvtxt','','srvtxt');
  },
  methods: {
    async getdbCode(codeType, uil, codeNam) {
        let params = {
          codeType: codeType,
          uil: uil ? uil : 'EN'
        }
        let rtnmsg = await Api.post("/manager/dic/listDicInfo", params)
        if (rtnmsg.respCode === SUCCESS) {
          let srvtxt = rtnmsg.data.map(item => ({
            value: item.codeValue,
            label: item.codeName
          }));
          this.dbCodes[codeNam] = srvtxt
        }
      },
    getCodelabel(value,codenam) {
        const codeobj = this.dbCodes[codenam].find(obj => obj.value === value)
        return codeobj ? codeobj.label : value;
  },
    async init() {
      this.workflowVisible=true;
      let params = {
        trninr: this.$route.query.businessInr
      };
        
      let rtnmsg = await Api.post("/public/quesel/getWfeInfo", params);
      if (rtnmsg.respCode == SUCCESS) {
        this.wfeList.data = rtnmsg.data.wfeList;
      }
    },
    handleCloseMessage() {
      this.$emit("onClose");
    },
     formatter(val) {
      let label;
      let wfetrssta = [
        { label: "Done", value: "D" },
        { label: "发布", value: "1" },
        { label: "Cancel", value: "C" },
        { label: "Error", value: "E" },
        { label: "Open", value: "O" },
        { label: "建立", value: "6" },
        { label: "Waiting", value: "W" },
        { label: "拒绝", value: "2" },
        { label: "有效", value: "A" },
        { label: "外部确认", value: "5" },
        { label: "Skip", value: "S" },
        { label: "需求修改", value: "3" },
        { label: "创建时签名", value: "4" },
        { label: "Retry", value: "R" }
      ];
      for (let i of wfetrssta) {
        if (i.value === val) {
          label = i.label;
          break;
        }
      }
      return label;
    },
    onClose() {
      this.modelVisible = false;
    }
  }
};
</script>
<style scoped lang="less">
</style>