value
2023-08-24 3df13852542ab81e8b6bdd1a109bde42ae5355a7
src/views/inspectionManagement/commissionInspection/index.vue
@@ -24,11 +24,20 @@
                  </el-form-item>
               </el-form>
               <el-form>
                  <el-popover placement="left" width="130" trigger="click">
                  <el-popover placement="left" width="350" trigger="click">
                     <div class="vue_qr_div">
                        <span style="color: #0078ff;">扫描二维码<br />获取委托单</span>
                        <vue-qr :text="viewId" :size="100" :margin="0" style="margin-top: 10px;">
                        </vue-qr>
                        <el-row>
                           <el-col>
                              <el-input v-model="view" readonly size="medium" style="width: 250px;margin-right: 10px;"></el-input>
                              <el-button size="small" type="primary" v-if="viewId==null" @click="viewDia=true">生成</el-button>
                              <el-button size="small" type="primary" v-else-if="viewId!=null" @click="copy">复制</el-button>
                           </el-col>
                        </el-row>
                        <el-row style="margin-top: 10px;">
                           <el-col v-if="viewId==null">当前链接已过期,请点击生成按钮重新生成</el-col>
                           <el-col
                              v-else-if="viewId!=null">当前链接将在{{(parseInt(viewTime)/60/60)>1?(parseInt(viewTime)/60/60).toFixed(1)+'小时':Math.round(parseInt(viewTime)/60)+'分钟'}}后过期</el-col>
                        </el-row>
                     </div>
                     <el-button slot="reference" class="rightBtn" type="primary" @click="goToaddCommision">新增委托</el-button>
                  </el-popover>
@@ -93,6 +102,30 @@
      <div v-else>
         <router-view />
      </div>
      <el-dialog title="链接时长设置" :visible.sync="viewDia" width="30%">
         <div>
            <el-row style="line-height: 46px;">
               <el-col :span="6" style="font-size: 14px;text-align: right;">时长设置:</el-col>
               <el-col :span="14" :offset="1">
                  <el-select v-model="viewTime" size="medium">
                     <el-option label="1 天" :value="1"></el-option>
                     <el-option label="2 天" :value="2"></el-option>
                     <el-option label="3 天" :value="3"></el-option>
                     <el-option label="4 天" :value="4"></el-option>
                     <el-option label="5 天" :value="5"></el-option>
                     <el-option label="6 天" :value="6"></el-option>
                     <el-option label="1 周" :value="7"></el-option>
                  </el-select>
               </el-col>
            </el-row>
         </div>
         <span slot="footer" class="dialog-footer">
            <el-button type="primary" @click="getViewId()">提 交</el-button>
            <el-button @click="viewDia = false">取 消</el-button>
         </span>
      </el-dialog>
      <!-- 隐藏域输入框用来复制 -->
      <input id="copyContext" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;" />
   </div>
</template>
@@ -102,11 +135,7 @@
      getViewUUID,
      selectViewUUID
   } from '@/api/inspection/commisioninspection'
   import vueQr from 'vue-qr'
   export default {
      components: {
         vueQr
      },
      data() {
         return {
            form: [],
@@ -151,7 +180,10 @@
            total: 100,
            showDetail: false,
            day: 1,
            viewId: ''
            view: null,
            viewId: null,
            viewTime: 1,
            viewDia: false
         }
      },
      created() {
@@ -269,13 +301,32 @@
            }
         },
         goToaddCommision() {
            // this.$router.push('/inspectionManagement/commissionInspection/addCommision')
            // this.showDetail = true
            selectViewUUID({
               day: this.day
            }).then(res => {
               this.viewId = res.data
               this.view = `${this.vueIp}addCommision/${res.data.id}`
               this.viewId = res.data.id
               this.viewTime = res.data.time
            })
         },
         getViewId() {
            getViewUUID({
               day: this.viewTime == null ? 1 : this.viewTime
            }).then(res => {
               this.viewId = res.data
               this.view = `${this.vueIp}addCommision/${res.data.id}`
               this.viewDia = false
               this.$message.success('链接已生成,点击复制按钮进行复制')
            })
         },
         copy() {
            document.getElementById('copyContext').value = this.view
            const input = document.querySelector('#copyContext');
            input.select()
            if (document.execCommand('copy')) {
               this.$message.success('已复制到剪贴板')
            }
         }
      }
   }
@@ -291,6 +342,66 @@
      .sermargin {
         margin-right: 60px;
      }
      .rightForm {
         display: flex;
         justify-content: space-between;
         /* background-color: #bfa; */
         height: 40px;
         line-height: 40px;
         >div {
            padding: 0px 10px;
            padding-bottom: 10px;
            border: 1px solid rgb(8, 156, 230);
            margin-right: 10px;
            /* height: 40px;
        line-height: 40px; */
         }
         .rightBtn {
            background-color: rgb(1, 102, 226);
         }
      }
   }
   .library-table {
      background-color: #fff;
      flex: 1;
      margin: 0px -15px;
      margin-top: 40px;
      display: flex;
      flex-direction: column;
      .table-header {
         padding: 20px;
         display: flex;
         justify-content: space-between;
         .el-form-item {
            margin-bottom: 30px !important;
         }
      }
      .table-box {
         padding: 0px 20px;
         margin-top: 0px;
         flex: 1;
         background: #fff;
         /* padding: 20px 20px 10px 20px; */
         display: flex;
         flex-direction: column;
         .el-table {
            flex: 1;
         }
         >div:nth-child(2) {
            display: flex;
            justify-content: end;
            margin: 10px 0;
         }
      }
   }
@@ -336,8 +447,9 @@
         }
      }
   }
   .vue_qr_div{
   .vue_qr_div {
      text-align: center;
      color: #0166e2;
   }
</style>