vue table表格页面新增、查看

​​​​​​​​​​​​​​

输入框:divEdit.vue
查看框:devView.vue
css文件:index.css
新增页面:add.vue
查看页面:view.vue

divEdit.vue页面:

<template>
  <div :contenteditable="canEdit" v-html="innerText" @keydown="textareaKeydown($event)" @blur="changeText"></div>
</template>
<script>
export default {
  name: 'divEdit',
  props: ['value'],
  data() {
    return {
      innerText: this.value,
      canEdit: ''
    }
  },
  methods: {
    changeText() {
      this.innerText = this.$el.innerHTML
      this.$emit('input', this.innerText)
    },
    onEnter(event) {
      console.log(event)
      event.preventDefault()
      return false
    },
    textareaKeydown(event) {
      if (event.keyCode === 13) {
        event.preventDefault() // 阻止浏览器默认换行操作
        return false
      }
    }
  }
}
</script>

devView.vue页面:

<template>
  <div>{{value}}</div>
</template>
<script>
export default {
  name:'divView',
  props: ['value'],
  data(){
    return {innerText:this.value}
  },
  methods:{
  }
}
</script>

index.css文件:

.acceptance-header {
  font-size: 20px;
  margin-bottom: 12px;
}

.acceptance-body {
  border: 1px solid #b7b7be;
}

.br {
  border-right: 1px solid #b7b7be;
}

.bm {
  border-bottom: 1px solid #b7b7be;
}

.flex {
  display: flex;
}

.glow {
  flex-shrink: 0;
  flex-grow: 1;
  width: 0;
}

.glows {
  display: inline-block;
  min-width: 36px !important;
  text-align: center;
}

.shrink {
  flex-shrink: 0;
  flex-grow: 0;
}

.cell {
  padding: 10px;
}

.center {
  display: flex;
  align-items: center;
  justify-content: center;
}


.h100 {
  height: 100px;
}

.v-center {
  display: flex;
  align-items: center;
}

.h-center {
  display: flex;
  justify-content: center;
}

.w20 {
  width: 20px;
}

.w40 {
  width: 40px;
}

.w80 {
  width: 80px;
}

.w100 {
  width: 100px;
}

.w120 {
  width: 120px;
}

.w160 {
  width: 160px;
}

.w200 {
  width: 200px;
}

.w220 {
  width: 220px;
}

.w320 {
  width: 320px;
}

.w420 {
  width: 420px;
}

.space-around {
  justify-content: space-around;
}

.border-none {
  border: none
}

.dialog-btns {
  text-align: center;
  margin-top: 20px;
}

add.vue页面:

<template>
  <div class="acceptance-edit ">
    <el-dialog :visible="drawerEnable" title="" @closed="drawerClosed" @close="drawerClose" center
               width="1100px" :close-on-click-modal="false" top="20px" :modal-append-to-body="false"
               custom-class="acceptance-pop">
      <div class="pop-body">
        <div class="pop-page">
          <div class="acceptance-header center">预制墙板类构件质量检验记录</div>
          <div class="iscroll">
            <div class="acceptance-body">
              <div class="flex bm">
                <div class="w200 br cell center">工程名称</div>
                <div class="glow br cell center">
                  <divEdit class="glow v-center cell" v-model="insert.projectName"></divEdit>
                </div>
                <div class="w160 br cell center">构件编号</div>
                <div class="w160 v-center  center">
                  <divEdit class="glow v-center cell" v-model="insert.componentNumber"></divEdit>
                </div>
              </div>
              <div class="flex bm">
                <div class="w100 br cell center">主控项目</div>
                <div class="glow">
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.2</div>
                    <div class="glow br cell v-center">
                      预制构件的脱模强度
                    </div>
                    <div class="w320 cell center">
                      <el-radio-group v-model="insert.demoldingStrength" size="mini">
                        <el-radio label="Y" border>符合</el-radio>
                        <el-radio label="N" border>不符合</el-radio>
                      </el-radio-group>
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.3-7.2.6</div>
                    <div class="glow br cell v-center">
                      预应力构件
                    </div>
                    <div class="w320 cell center">
                      <el-radio-group v-model="insert.prestressedComponents" size="mini">
                        <el-radio label="Y" border>符合</el-radio>
                        <el-radio label="N" border>不符合</el-radio>
                      </el-radio-group>
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.7-7.2.9</div>
                    <div class="glow br cell v-center">
                      预埋预留、粗糙面、键槽
                    </div>
                    <div class="w320 cell center">
                      <el-radio-group v-model="insert.reserved" size="mini">
                        <el-radio label="Y" border>符合</el-radio>
                        <el-radio label="N" border>不符合</el-radio>
                      </el-radio-group>
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.10</div>
                    <div class="glow br cell v-center">
                      面砖粘结强度
                    </div>
                    <div class="w320 cell center">
                      <el-radio-group v-model="insert.brickStrength" size="mini">
                        <el-radio label="Y" border>符合</el-radio>
                        <el-radio label="N" border>不符合</el-radio>
                      </el-radio-group>
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.11-7.2.12</div>
                    <div class="glow br cell v-center">
                      夹心保温外墙板保温性能、拉结件性能
                    </div>
                    <div class="w320 cell center">
                      <el-radio-group v-model="insert.heatPreservation" size="mini">
                        <el-radio label="Y" border>符合</el-radio>
                        <el-radio label="N" border>不符合</el-radio>
                      </el-radio-group>
                    </div>
                  </div>
                  <div class="flex">
                    <div class="w100 br cell center">7.2.13</div>
                    <div class="glow br cell v-center">
                      预制构件的严重缺陷
                    </div>
                    <div class="w320 cell center">
                      <el-radio-group v-model="insert.seriousDisadvantage" size="mini">
                        <el-radio label="Y" border>符合</el-radio>
                        <el-radio label="N" border>不符合</el-radio>
                      </el-radio-group>
                    </div>
                  </div>
                </div>
              </div>
              <div class="flex">
                <div class="w200 br cell center">生产单位检验结果</div>
                <div class="glow">
                  <div class="flex bm">
                    <div class="glow br cell v-center">不合格品复查返修记录</div>
                    <div class="w420 cell v-center">
                      <divEdit class="glow v-center cell" v-model="insert.recordNotConformingProducts"></divEdit>
                    </div>
                  </div>
                  <div class="cell">
                    <div class="v-center">
                      检验结果
                      <divEdit class="glow v-center cell" v-model="insert.inspectionResults"></divEdit>
                    </div>
                    <div style="text-align: right">
                      <divEdit class="glows cell" v-model="insert.signYear"></divEdit>
                      年
                      <divEdit class="glows cell" v-model="insert.signMonth"></divEdit>
                      月
                      <divEdit class="glows cell" v-model="insert.signDay"></divEdit>
                      日
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="dialog-btns">
        <el-button type="primary" v-if="isState" @click="insertTap">新增保存</el-button>
        <el-button type="primary" v-else @click="editTap">编辑保存</el-button>
        <el-button @click="drawerEnable = false">取消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import divEdit from './components/divEdit.vue'
import {addRecords, updateRecords} from "@/api/production/componentRecords/ComponentQualityInspectionRecords";

export default {
  name: 'table1',
  props: {
    famsg: {
      type: Object,
      default: function () {
        return {}
      }
    },
    faType: {
      type: String,
    }
  },
  data() {
    return {
      drawerEnable: true,
      insert:{},
      submit: false,
      // 新增/编辑 状态
      isState: true,
    }
  },
  mounted() {
    if (this.faType === '修改') {
      this.isState = false
      this.insert = {...this.insert, ...this.famsg}
    } else {
      this.isState = true
    }
    this.drawerEnable = true
  },
  components: {
    divEdit
  },
  methods: {
    
  }
}
</script>

<style lang="scss" scoped>
@import './css/index.css';

</style>

view.vue页面:

<template>
  <div class="acceptance-edit ">
    <el-dialog :visible="drawerEnable" title="" @closed="drawerClosed" @close="drawerClose" center
               width="1100px" :close-on-click-modal="false" top="20px" :modal-append-to-body="false"
               custom-class="acceptance-pop">
      <div class="pop-body">
        <div class="pop-page">
          <div class="acceptance-header center">预制墙板类构件质量检验记录</div>
          <div class="iscroll">
            <div class="acceptance-body">
              <div class="flex bm">
                <div class="w200 br cell center">工程名称</div>
                <div class="glow br cell center">
                  <divView class="glow v-center cell" v-model="insert.projectName"></divView>
                </div>
                <div class="w160 br cell center">构件编号</div>
                <div class="w160 v-center  center">
                  <divView class="glow v-center cell" v-model="insert.componentNumber"></divView>
                </div>
              </div>
              <div class="flex bm">
                <div class="w100 br cell center">主控项目</div>
                <div class="glow">
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.2</div>
                    <div class="glow br cell v-center">
                      预制构件的脱模强度
                    </div>
                    <div class="w320 cell center">
                      {{ insert.demoldingStrength | viewTxt }}
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.3-7.2.6</div>
                    <div class="glow br cell v-center">
                      预应力构件
                    </div>
                    <div class="w320 cell center">
                      {{ insert.prestressedComponents | viewTxt }}
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.7-7.2.9</div>
                    <div class="glow br cell v-center">
                      预埋预留、粗糙面、键槽
                    </div>
                    <div class="w320 cell center">
                      {{ insert.reserved | viewTxt }}
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.10</div>
                    <div class="glow br cell v-center">
                      面砖粘结强度
                    </div>
                    <div class="w320 cell center">
                      {{ insert.brickStrength | viewTxt }}
                    </div>
                  </div>
                  <div class="flex bm">
                    <div class="w100 br cell center">7.2.11-7.2.12</div>
                    <div class="glow br cell v-center">
                      夹心保温外墙板保温性能、拉结件性能
                    </div>
                    <div class="w320 cell center">
                      {{ insert.heatPreservation | viewTxt }}
                    </div>
                  </div>
                  <div class="flex">
                    <div class="w100 br cell center">7.2.13</div>
                    <div class="glow br cell v-center">
                      预制构件的严重缺陷
                    </div>
                    <div class="w320 cell center">
                      {{ insert.seriousDisadvantage | viewTxt }}
                    </div>
                  </div>
                </div>
              </div>
              <div class="flex">
                <div class="w200 br cell center">生产单位检验结果</div>
                <div class="glow">
                  <div class="flex bm">
                    <div class="glow br cell v-center">不合格品复查返修记录</div>
                    <div class="w420 cell v-center">
                      <divView class="glow v-center cell" v-model="insert.recordNotConformingProducts"></divView>
                    </div>
                  </div>
                  <div class="cell">
                    <div class="v-center">
                      检验结果
                      <divView class="glow v-center cell" v-model="insert.inspectionResults"></divView>
                    </div>
                    <div style="text-align: right">
                      <divView class="glows cell" v-model="insert.signYear"></divView>
                      年
                      <divView class="glows cell" v-model="insert.signMonth"></divView>
                      月
                      <divView class="glows cell" v-model="insert.signDay"></divView>
                      日
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="dialog-btns">
        <el-button @click="drawerEnable = false">取消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import divView from './components/divView.vue'

export default {
  name: 'table1',
  props: {
    famsg: {
      type: Object,
      default: function () {
        return {}
      }
    },
    faType: {
      type: String,
    }
  },
  filters: {
    viewTxt(value) {
      if (!value) return '--'
      return value == 'Y' ? '符合' : '不符合'
    }
  },
  data() {
    return {
      drawerEnable: true,
      insert: {},
      submit: false,
    }
  },
  mounted() {
    this.insert = {...this.insert, ...this.famsg}
    this.drawerEnable = true
  },
  components: {
    divView
  },
  methods: {
    drawerClosed() {
      this.$emit('popClosed', this.submit)
    },
    drawerClose() {
      this.drawerEnable = false
    }
  }
}
</script>

<style lang="scss" scoped>
@import './css/index.css';
</style>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值