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.
		
		
		
		
		
			
		
			
				
					
					
						
							236 lines
						
					
					
						
							6.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							236 lines
						
					
					
						
							6.9 KiB
						
					
					
				
								<template>
							 | 
						|
								  <div style="display: flex;">
							 | 
						|
								    <div>
							 | 
						|
								      <div>
							 | 
						|
								        <el-button type="primary" class="btnClass" @click="btnGetPic" size="small">采图</el-button>
							 | 
						|
								      </div>
							 | 
						|
								      <div>
							 | 
						|
								        <el-button type="primary" class="btnClass" @click="btnExpPic" size="small">导图</el-button>
							 | 
						|
								      </div>
							 | 
						|
								      <div>
							 | 
						|
								        <el-button type="primary" class="btnClass" @click="btnSavePic" size="small">保存</el-button>
							 | 
						|
								      </div>
							 | 
						|
								    </div>
							 | 
						|
								    <div class="demo-image__preview" v-for="(item,index) in checkPictures" :key="item.id" style="padding: 0 0 0 2px;"> 
							 | 
						|
								      <div style="position: relative;font-size:24px;margin: -6px 0 0 55px;z-index:2;">
							 | 
						|
								        <el-tooltip content="删除该图" placement="bottom" effect="light">
							 | 
						|
								          <i class="el-icon-close" @click="btnDelImage(index)"
							 | 
						|
								            style="color: red;cursor:pointer;"></i>
							 | 
						|
								        </el-tooltip>
							 | 
						|
								      </div>
							 | 
						|
								      <div style="margin-top: -25px;">
							 | 
						|
								        <el-image 
							 | 
						|
								          style="width: 80px; height: 80px;border-radius:5px;"
							 | 
						|
								          :src="item.pictureFilename" 
							 | 
						|
								          :preview-src-list="[item.pictureFilename]">
							 | 
						|
								        </el-image>
							 | 
						|
								      </div>
							 | 
						|
								      <div style="display: flex;">
							 | 
						|
								        <div style="margin: -6px 0 0 1px;">
							 | 
						|
								          <el-checkbox v-model="item.isPrintTrans"></el-checkbox>
							 | 
						|
								        </div>
							 | 
						|
								        <div style="font-size:12px;margin: -2px 0 0 1px;">打印</div>        
							 | 
						|
								        <div style="font-size:15px;margin: -5px 0 0 2px;">
							 | 
						|
								          <el-tooltip content="保存后,图片将按序号从小到大排序" placement="bottom" effect="light">
							 | 
						|
								            <input placeholder="排序" v-model="item.displayOrder" @onkeyup="validateInteger(e,index)" 
							 | 
						|
								              style="width: 35px" />
							 | 
						|
								          </el-tooltip>
							 | 
						|
								        </div>
							 | 
						|
								      </div>
							 | 
						|
								    </div>
							 | 
						|
								  </div>
							 | 
						|
								</template>
							 | 
						|
								<script>
							 | 
						|
								import moment from "moment";
							 | 
						|
								import { mapState } from "vuex";
							 | 
						|
								import { getapi, postapi, putapi, deletapi } from "@/api/api";
							 | 
						|
								import { deepCopy } from '@/utlis/proFunc';
							 | 
						|
								
							 | 
						|
								export default {
							 | 
						|
								  components: {},
							 | 
						|
								  data() {
							 | 
						|
								    return {
							 | 
						|
								      checkPictures:[{
							 | 
						|
								        id:'1',
							 | 
						|
								        registerCheckId:'registerCheckId',
							 | 
						|
								        isPrint:'Y',
							 | 
						|
								        isPrintTrans:true,
							 | 
						|
								        pictureFilename:'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg'
							 | 
						|
								      },{
							 | 
						|
								        id:'2',
							 | 
						|
								        registerCheckId:'registerCheckId',
							 | 
						|
								        isPrint:'Y',
							 | 
						|
								        isPrintTrans:true,
							 | 
						|
								        pictureFilename:'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
							 | 
						|
								      }],     
							 | 
						|
								    };
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  created() {},
							 | 
						|
								
							 | 
						|
								  //挂载完成
							 | 
						|
								  mounted() {},
							 | 
						|
								
							 | 
						|
								  computed: {
							 | 
						|
								    ...mapState(["dict", "doctorCheck","patientRegister", "customerOrg"]),
							 | 
						|
								    lmoment(date, forMat) {
							 | 
						|
								      return moment(new Date(date)).format(forMat);
							 | 
						|
								    },
							 | 
						|
								  },
							 | 
						|
								  methods: {
							 | 
						|
								    // 根据checkId获取图片列表信息
							 | 
						|
								    getCheckPictures(registerCheckId){
							 | 
						|
								      this.checkPictures = []
							 | 
						|
								      if(!registerCheckId){        
							 | 
						|
								        return
							 | 
						|
								      }
							 | 
						|
								      // {
							 | 
						|
								      //   "registerCheckId": "3a0f6a3c-88a5-d5f7-d59b-ef3b3807490b",
							 | 
						|
								      //   "pictureFilename": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
							 | 
						|
								      //   "isPrint": "N",
							 | 
						|
								      //   "displayOrder": 1,
							 | 
						|
								      //   "creatorName": "admin",
							 | 
						|
								      //   "lastModifierName": "admin",
							 | 
						|
								      //   "lastModificationTime": "2023-12-15T15:24:08",
							 | 
						|
								      //   "lastModifierId": "3a0c4180-107c-0c89-b25b-0bd34666dcec",
							 | 
						|
								      //   "creationTime": "2023-12-15T15:24:06",
							 | 
						|
								      //   "creatorId": "3a0c4180-107c-0c89-b25b-0bd34666dcec",
							 | 
						|
								      //   "id": "3a0f6a3c-88a5-d5f7-d59b-ef3b38074901"
							 | 
						|
								      // }
							 | 
						|
								      getapi(`/api/app/registercheckpicture/getregistercheckpictureinregistercheckid?RegisterCheckId=${registerCheckId}`)
							 | 
						|
								      .then(res =>{
							 | 
						|
								        if(res.code != -1){
							 | 
						|
								          res.data.forEach(e => {
							 | 
						|
								            this.checkPictures.push(Object.assign({isPrintTrans:e.isPrint == 'Y' ? true:false},e))
							 | 
						|
								          });
							 | 
						|
								        }
							 | 
						|
								      })
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    btnGetPic(){
							 | 
						|
								      console.log('采图,开发中……')
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    btnExpPic(){
							 | 
						|
								      console.log('导图,开发中……')
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    btnSavePic(){
							 | 
						|
								      let body = []
							 | 
						|
								      // [
							 | 
						|
								      //   {
							 | 
						|
								      //     "registerCheckPictureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  // 新增无需传此值
							 | 
						|
								      //     "registerCheckId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
							 | 
						|
								      //     "pictureFilename": "string",
							 | 
						|
								      //     "isPrint": "string",
							 | 
						|
								      //     "displayOrder": 0
							 | 
						|
								      //   }
							 | 
						|
								      // ]
							 | 
						|
								      if(this.checkPictures.length == 0){
							 | 
						|
								        this.$message.warning("没有可保存的图片数据!")
							 | 
						|
								        return
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      let checkPictures = deepCopy(this.checkPictures)
							 | 
						|
								      checkPictures.sort((a,b) =>{
							 | 
						|
								        let seq1 = 0
							 | 
						|
								        let seq2 = 0
							 | 
						|
								        try {
							 | 
						|
								          seq1 = parseInt(a.displayOrder)
							 | 
						|
								        } catch (error) {
							 | 
						|
								          seq1 = 0
							 | 
						|
								        }
							 | 
						|
								        try {
							 | 
						|
								          seq2 = parseInt(b.displayOrder)
							 | 
						|
								        } catch (error) {
							 | 
						|
								          seq2 = 0
							 | 
						|
								        }
							 | 
						|
								        return seq1 - seq2
							 | 
						|
								      })
							 | 
						|
								
							 | 
						|
								      checkPictures.forEach(e => {
							 | 
						|
								        let item = {
							 | 
						|
								          registerCheckId:e.registerCheckId,
							 | 
						|
								          pictureFilename:e.pictureFilename
							 | 
						|
								        }
							 | 
						|
								        if(e.id) item.registerCheckPictureId = e.id
							 | 
						|
								        if(e.isPrintTrans){
							 | 
						|
								          item.isPrint = 'Y'
							 | 
						|
								        }else{
							 | 
						|
								          item.isPrint = 'N'
							 | 
						|
								        }        
							 | 
						|
								        body.push(item);
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      postapi('/api/app/registercheckpicture/createregistercheckpicturemany',body)
							 | 
						|
								      .then(res =>{
							 | 
						|
								        if(res.code != -1){
							 | 
						|
								          this.$message.success("操作成功!")
							 | 
						|
								          this.getCheckPictures(checkPictures[0].registerCheckId);
							 | 
						|
								        }
							 | 
						|
								      })
							 | 
						|
								
							 | 
						|
								      
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    // 删除图片
							 | 
						|
								    btnDelImage(index){
							 | 
						|
								      let body = [this.checkPictures[index].id]
							 | 
						|
								      this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
							 | 
						|
								        confirmButtonText: "是",
							 | 
						|
								        cancelButtonText: "否",
							 | 
						|
								        type: "warning",
							 | 
						|
								      }).then(() => {        
							 | 
						|
								        return postapi(`/api/app/registercheckpicture/deleteregistercheckpicturemany`, body)
							 | 
						|
								      }).then((res) => {
							 | 
						|
								        if(res.code != -1){
							 | 
						|
								          this.$message.success("操作成功!")          
							 | 
						|
								          this.checkPictures.splice(index,1)
							 | 
						|
								        }   
							 | 
						|
								      }).catch((err) => {
							 | 
						|
								        if (err == "cancel") {
							 | 
						|
								          this.$message.info("已取消");          
							 | 
						|
								        }
							 | 
						|
								      });
							 | 
						|
								      
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    validateInteger(e,index){
							 | 
						|
								      var regex = /^[0-9]*$/;
							 | 
						|
								      console.log(e,index)
							 | 
						|
								      if (!regex.test(e.value)) {
							 | 
						|
								        // 如果输入不满足整数条件,则清除输入框内容
							 | 
						|
								
							 | 
						|
								        e.value = "";
							 | 
						|
								      }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  //监听事件
							 | 
						|
								  watch: {
							 | 
						|
								    //体检人员切换
							 | 
						|
								    "doctorCheck.RegisterCheckId":{
							 | 
						|
								      immediate:true,
							 | 
						|
								      handler(newVal, oldVal) {
							 | 
						|
								        console.log("watch:doctorCheck.RegisterCheckId:", newVal, " oldVal:", oldVal);        
							 | 
						|
								        this.getCheckPictures(newVal)        
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								  }
							 | 
						|
								};
							 | 
						|
								</script>
							 | 
						|
								<style scoped>
							 | 
						|
								.query {
							 | 
						|
								  margin-left: 10px;
							 | 
						|
								  margin-right: 2px;
							 | 
						|
								  padding: 1px 1px;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.btnClass{
							 | 
						|
								  margin: 2px 2px 0;    
							 | 
						|
								  height: 26px;
							 | 
						|
								  min-width: 40px;
							 | 
						|
								  padding: 5px 5px; /*原始 默认值 10px 10px */
							 | 
						|
								}
							 | 
						|
								</style>
							 |