landydb 3 nedēļas atpakaļ
vecāks
revīzija
1a75e8afba

+ 110 - 0
src/views/modules/production/plan-assign.vue

@@ -0,0 +1,110 @@
+<template>
+  <div>
+    <div class="my-title">分派</div>
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      ref="dataForm"
+      label-width="auto"
+    >
+      <el-row class="my-row">
+        <el-col :span="24">
+          <el-form-item label="责任人" prop="responsibilityPerson">
+            <user-component
+              v-model="dataForm.responsibilityPerson"
+              :user-id="dataForm.responsibilityPerson"
+              @userSelected="selectChange"
+            />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">取消</el-button>
+      <el-button
+        type="primary"
+        @click="dataFormSubmit()"
+        v-reClick
+        >确定</el-button
+      >
+    </span>
+  </div>
+</template>
+
+<script>
+import UserComponent from '../common/user-component'
+export default {
+  name: 'plan-assign',
+  components: { UserComponent },
+  computed: {},
+  data () {
+    return {
+      visible: false,
+      id: 0,
+      dataForm: {},
+      dataRule: {
+        responsibilityPerson: [
+          {
+            required: true,
+            message: '请选择责任人',
+            trigger: 'blur'
+          }
+        ]
+      }
+    }
+  },
+  created () {},
+  beforeDestroy () {},
+  methods: {
+    onChose () {
+      this.$emit('onChose')
+    },
+    async init (item) {
+      this.dataForm = item
+
+      this.visible = true
+    },
+    validateField (type) {
+      this.$refs.dataForm.validateField(type)
+    },
+    // 表单提交
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          this.$http({
+            url: this.$http.adornUrl(`/biz-service/projProduction/assign`),
+            method: 'post',
+            data: this.$http.adornData({
+              productionManagementId: this.dataForm.productionManagementId,
+              responsibilityPerson: this.dataForm.responsibilityPerson
+            })
+          }).then(({ data }) => {
+            if (data && data.code === '200') {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.onChose()
+                  this.$emit('refreshDataList')
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    },
+    selectChange (val) {
+      this.dataForm.responsibilityPerson = val
+    }
+  }
+}
+</script>
+
+<style scoped>
+.my-row {
+  margin-bottom: 20px;
+}
+</style>

+ 0 - 59
src/views/modules/production/plan-detail.vue

@@ -1,59 +0,0 @@
-<template>
-  <div>
-    <div class="my-title">查看</div>
-    <div style="margin-left: 20px; margin-right: 20px">
-      <e-desc title="基本信息" column="3">
-        <e-desc-item label="项目名称">{{ dataForm.projectName }}</e-desc-item>
-        <e-desc-item label="任务号">{{ dataForm.orderCode }}</e-desc-item>
-        <e-desc-item label="客户名称">{{ dataForm.customerName }}</e-desc-item>
-       
-        <e-desc-item label="状态">{{ dataForm.stateStr }}</e-desc-item>
-        <e-desc-item label="合同交期">{{ dataForm.deliveryDate }}</e-desc-item>
-        <e-desc-item label="创建时间">{{ dataForm.createTime }}</e-desc-item>
-
-        <e-desc-item label="责任人">{{ dataForm.responsibilityPerson }}</e-desc-item>
-      </e-desc>
-    </div>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="onChose">返回</el-button>
-    </span>
-  </div>
-</template>
-
-<script>
-import EDesc from '../common/e-desc'
-import EDescItem from '../common/e-desc-item'
-export default {
-  name: 'plan-detail',
-  components: {
-    EDesc,
-    EDescItem,
-  },
-  data () {
-    return {
-      visible: false,
-      id: 0,
-      dataForm: {},
-    }
-  },
-  methods: {
-    onChose () {
-      this.$emit('onChose')
-    },
-    async init (item) {
-      this.visible = true
-      this.dataForm = item
-    },
-  }
-}
-</script>
-
-<style scoped>
-.my-line {
-  border-bottom: 1px solid #c0c4cc;
-  margin-bottom: 10px;
-}
-.title {
-  padding: 10px 0;
-}
-</style>

+ 309 - 0
src/views/modules/production/plan-submit.vue

@@ -0,0 +1,309 @@
+<template>
+  <div>
+    <div class="my-title">分派</div>
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      ref="dataForm"
+      label-width="auto"
+    >
+      <el-row class="my-row">
+        <el-col :span="6">
+          <el-form-item label="项目名称:" prop="projectName">
+            <span>{{dataForm.projectName}}</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="任务号:" prop="orderCode">
+            <span>{{dataForm.orderCode}}</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="技术协议:" prop="attachFile1">
+            <span @click="attachDetail(dataForm.attachFile1)">{{dataForm.attachFile1 == null ? '' : dataForm.attachFile1[0].fileName}}</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="资料:" prop="attachFile2">
+            <span @click="attachDetail(dataForm.attachFile1)">{{dataForm.attachFile2 == null ? '' : dataForm.attachFile2[0].fileName}}</span>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-table 
+        :data="dataForm.proProductList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="100"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="productName"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="名称">
+        </el-table-column>
+        <el-table-column
+          prop="mapNumber"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="图号">
+        </el-table-column>
+        <el-table-column
+          prop="versionNumber"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="版本号">
+        </el-table-column>
+        <el-table-column
+          prop="attachList2"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="简图">
+          <template slot-scope="scope">
+            <el-button :disabled="!scope.row.attachList2 || scope.row.attachList2.length === 0" type="text" size="small" @click="attachDetail(scope.row.attachList2)">查看</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="unit"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="单位">
+        </el-table-column>
+        <el-table-column
+          prop="cnt"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="单套数量">
+        </el-table-column>
+        <el-table-column
+          prop="productSpec"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="材料规格">
+        </el-table-column>
+        <el-table-column
+          prop="size"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="净尺寸">
+        </el-table-column>
+        <el-table-column
+          prop="projectName"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="表处理">
+        </el-table-column>
+        <el-table-column
+          prop="heatTreatment"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="热处理">
+        </el-table-column>
+        <el-table-column
+          prop="projectName"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="关重性">
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          prop="materialCnt"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="库存数">
+        </el-table-column>
+        <el-table-column
+          prop="planCnt"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="订单计划数量">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          prop="projectName"
+          header-align="center"
+          align="center"
+          width="120"
+          :show-tooltip-when-overflow="true"
+          label="处置">
+          <template slot-scope="scope">
+            <div class="radio-wrapper">
+              <el-radio-group v-model="scope.row.disposal" class="radio-group-wrap">
+                <el-radio :label="2" style="margin-left:0">采购件</el-radio>
+                <el-radio :label="3" style="margin-left:0">委外件</el-radio>
+                <el-radio :label="1" style="margin-left:0">自制件</el-radio>
+              </el-radio-group>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          prop="projectName"
+          header-align="center"
+          align="center"
+          width="120"
+          :show-tooltip-when-overflow="true"
+          label="工艺">
+          <template slot-scope="scope">
+            <el-radio-group v-model="scope.row.isTechnology" class="radio-group-wrap">
+              <el-radio :label="1" style="margin-left:0">需要</el-radio>
+              <el-radio :label="2" style="margin-left:0">不需要</el-radio>
+            </el-radio-group>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">取消</el-button>
+      <el-button
+        type="primary"
+        @click="dataFormSubmit()"
+        v-reClick
+        >确定</el-button
+      >
+    </span>
+
+    <attach-detail-dialog ref="attachDetail"/>
+  </div>
+</template>
+
+<script>
+import UserComponent from '../common/user-component'
+import AttachDetailDialog from '../common/attach-detail-dialog'
+export default {
+  name: 'plan-assign',
+  components: { UserComponent, AttachDetailDialog },
+  computed: {},
+  data () {
+    return {
+      readonly: false,
+      id: 0,
+      dataForm: {
+        proProductList:[]
+      },
+      dataRule: {},
+      dataList: [],
+      dataListLoading: false
+    }
+  },
+  created () {},
+  beforeDestroy () {},
+  methods: {
+    onChose () {
+      this.$emit('onChose')
+    },
+    async init (item, readonly) {
+      let id = item.productionManagementId;
+      if(readonly){
+        this.readonly = true
+      }
+
+      this.$http({
+            url: this.$http.adornUrl(`/biz-service/projProduction/info/${id}`),
+            method: 'get'
+          }).then(({data}) => {
+            if(data && data.code === '200'){
+              this.dataForm = data.data;
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+
+      this.dataList = [{disposal:'', isTechnology:''}]
+
+      this.visible = true
+    },
+    validateField (type) {
+      this.$refs.dataForm.validateField(type)
+    },
+    attachDetail (attachList) {
+      this.$nextTick(() => {
+        this.$refs.attachDetail.init(attachList)
+      })
+    },
+    // 表单提交
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          this.$http({
+            url: this.$http.adornUrl(`/biz-service/projProduction/assign`),
+            method: 'post',
+            data: this.$http.adornData({
+              productionManagementId: this.dataForm.productionManagementId,
+              responsibilityPerson: this.dataForm.responsibilityPerson
+            })
+          }).then(({ data }) => {
+            if (data && data.code === '200') {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.onChose()
+                  this.$emit('refreshDataList')
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    },
+    selectChange (val) {
+      this.dataForm.responsibilityPerson = val
+    }
+  }
+}
+</script>
+
+<style>
+.my-row {
+  margin-bottom: 20px;
+}
+
+.radio-group-wrap {
+  display: flex;
+  align-items: flex-start;
+  flex-direction: column;
+  gap: 10px 0px; /* 行列间距控制 */
+}
+</style>

+ 17 - 15
src/views/modules/production/plan.vue

@@ -1,7 +1,7 @@
 <!-- 工种管理 -->
 <template>
   <div class="work-type">
-    <template v-if="!detailVisible && !assignVisible && !noticeChangeVisible">
+    <template v-if="!assignVisible && !noticeChangeVisible && !submitVisible">
       <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
         <el-form-item label="任务号">
           <el-input v-model="dataForm.orderCode" placeholder="" clearable/>
@@ -86,8 +86,9 @@
           width="220"
           label="操作">
           <template slot-scope="scope">
-            <el-button type="text" size="small" @click="detailHandle(scope.row)">查看</el-button>
-            <el-button type="text" size="small" @click="assignHandle(scope.row)">处理</el-button>
+            <el-button type="text" size="small" @click="submitHandle(scope.row, true)">查看</el-button>
+            <el-button type="text" size="small" @click="assignHandle(scope.row)">分派</el-button>
+            <el-button type="text" size="small" @click="submitHandle(scope.row, false)">处理</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -102,24 +103,26 @@
       </el-pagination>
     </template>
     <!-- 弹窗 -->
-    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
+    <assign v-if="assignVisible" ref="assign" @onChose="onChose"/>
     <notice-change v-if="noticeChangeVisible" ref="noticeChange" @onChose="onChose"/>
+    <submit-plan v-if="submitVisible" ref="submit" @onChose="onChose"/>
   </div>
 </template>
 
 <script>
-  import Detail from '@/views/modules/production/plan-detail'
+  import Assign from '@/views/modules/production/plan-assign'
   import NoticeChange from '@/views/modules/production/plan-notice-change-setting'
+  import SubmitPlan from '@/views/modules/production/plan-submit'
   export default {
     name: 'plan',
     components: {
-      Detail, NoticeChange
+      Assign, NoticeChange, SubmitPlan
     },
     data () {
       return {
-        detailVisible: false,
         assignVisible: false,
         noticeChangeVisible: false,
+        submitVisible: false,
         dataForm: {},
         dataList: [],
         pageIndex: 1,
@@ -145,6 +148,7 @@
         this.detailVisible = false
         this.assignVisible = false
         this.noticeChangeVisible = false
+        this.submitVisible = false
       },
       // 查询
       queryData () {
@@ -190,20 +194,18 @@
       selectionChangeHandle (val) {
         this.dataListSelections = val
       },
-      // 详情
-      detailHandle (item) {
-        this.detailVisible = true
-        item.stateStr = this.getStateStr(item.state)
-        this.$nextTick(() => {
-          this.$refs.detail.init(item)
-        })
-      },
       assignHandle (item) {
         this.assignVisible = true
         this.$nextTick(() => {
           this.$refs.assign.init(item)
         })
       },
+      submitHandle(item, readonly) {
+        this.submitVisible = true
+        this.$nextTick(() => {
+          this.$refs.submit.init(item, readonly)
+        })
+      },
       formatState (row) {
         if (!row.state) return ''
         

+ 246 - 34
src/views/modules/tech/project-product-detail.vue

@@ -1,70 +1,282 @@
 <template>
   <div>
-    <div class="my-title">查看</div>
-    <div style="margin-left: 20px; margin-right: 20px">
-      <e-desc title="基本信息" column="3">
-        <e-desc-item label="项目名称">{{ dataForm.projectName }}</e-desc-item>
-        <e-desc-item label="任务号">{{ dataForm.orderCode }}</e-desc-item>
-        <e-desc-item label="物料名称">{{ dataForm.productName }}</e-desc-item>
-       
-        <e-desc-item label="状态">{{ dataForm.stateStr }}</e-desc-item>
-        <e-desc-item label="合同交期">{{ dataForm.deliveryDate }}</e-desc-item>
+    <div class="my-title">分派</div>
+    <el-form
+      :model="dataForm"
+      :rules="dataRule"
+      ref="dataForm"
+      label-width="auto"
+    >
+      <el-row class="my-row">
+        <el-col :span="6">
+          <el-form-item label="项目名称:" prop="projectName">
+            <span>{{dataForm.projectName}}</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="任务号:" prop="orderCode">
+            <span>{{dataForm.orderCode}}</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="技术协议:" prop="attachFile1">
+            <span @click="attachDetail(dataForm.attachFile1)">{{dataForm.attachFile1 == null ? '' : dataForm.attachFile1[0].fileName}}</span>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="资料:" prop="attachFile2">
+            <span @click="attachDetail(dataForm.attachFile1)">{{dataForm.attachFile2 == null ? '' : dataForm.attachFile2[0].fileName}}</span>
+          </el-form-item>
+        </el-col>
+      </el-row>
 
-      </e-desc>
-    </div>
+      <el-table 
+        :data="dataForm.proProductList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="100"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="productName"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="名称">
+        </el-table-column>
+        <el-table-column
+          prop="mapNumber"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="图号">
+        </el-table-column>
+        <el-table-column
+          prop="versionNumber"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="版本号">
+        </el-table-column>
+        <el-table-column
+          prop="attachList2"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="简图">
+          <template slot-scope="scope">
+            <el-button :disabled="!scope.row.attachList2 || scope.row.attachList2.length === 0" type="text" size="small" @click="attachDetail(scope.row.attachList2)">查看</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="productSpec"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="规格">
+        </el-table-column>
+        <el-table-column
+          prop="cnt"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="数量">
+        </el-table-column>
+        <el-table-column
+          prop="unit"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="单位">
+        </el-table-column>
+        <el-table-column
+          prop="materials"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="材料">
+        </el-table-column>
+        <el-table-column
+          prop="size"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="净尺寸">
+        </el-table-column>
+        <el-table-column
+          prop="surfaceTreatment"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="表处理">
+        </el-table-column>
+        <el-table-column
+          prop="heatTreatment"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="热处理">
+        </el-table-column>
+        <el-table-column
+          prop="importance"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="关重性">
+        </el-table-column>
+        <el-table-column
+          prop="appraisal"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="是否首件鉴定">
+          <template slot-scope="scope">
+            {{scope.row.appraisal === 2 ? '是' : '否'}}
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="备注">
+        </el-table-column>
+      </el-table>
+    </el-form>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="onChose">返回</el-button>
+      <el-button @click="onChose">取消</el-button>
+      <el-button
+        type="primary"
+        @click="dataFormSubmit()"
+        v-reClick
+        >确定</el-button
+      >
     </span>
 
-    <!-- 文件预览 -->
-    <preview-component v-if="previewVisible" ref="preview"/>
+    <attach-detail-dialog ref="attachDetail"/>
   </div>
 </template>
 
 <script>
-import EDesc from '../common/e-desc'
-import EDescItem from '../common/e-desc-item'
-import PreviewComponent from '../common/preview-component'
+import UserComponent from '../common/user-component'
+import AttachDetailDialog from '../common/attach-detail-dialog'
 export default {
   name: 'project-product-detail',
-  components: {
-    EDesc,
-    EDescItem,
-    PreviewComponent
-  },
+  components: { UserComponent, AttachDetailDialog },
+  computed: {},
   data () {
     return {
       visible: false,
       id: 0,
-      dataForm: {},
-      previewVisible: false
+      dataForm: {
+        proProductList: []
+      },
+      dataRule: {},
+      dataList: [],
+      dataListLoading: false
     }
   },
+  created () {},
+  beforeDestroy () {},
   methods: {
     onChose () {
       this.$emit('onChose')
     },
     async init (item) {
-      this.visible = true
+      let id = item.productTechnologyId;
+
+      this.$http({
+            url: this.$http.adornUrl(`/biz-service/projProduct/info/${id}`),
+            method: 'get'
+          }).then(({data}) => {
+            if(data && data.code === '200'){
+              this.dataForm = data.data;
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+
       this.dataForm = item
+
+      this.dataList = [{disposal:'', isTechnology:''}]
+
+      this.visible = true
     },
-     // 预览
-    previewFile (fileName, url) {
-      this.previewVisible = true
+    validateField (type) {
+      this.$refs.dataForm.validateField(type)
+    },
+    attachDetail (attachList) {
       this.$nextTick(() => {
-        this.$refs.preview.init(fileName, url)
+        this.$refs.attachDetail.init(attachList)
+      })
+    },
+    // 表单提交
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          this.$http({
+            url: this.$http.adornUrl(`/biz-service/projProduction/assign`),
+            method: 'post',
+            data: this.$http.adornData({
+              productionManagementId: this.dataForm.productionManagementId,
+              responsibilityPerson: this.dataForm.responsibilityPerson
+            })
+          }).then(({ data }) => {
+            if (data && data.code === '200') {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.onChose()
+                  this.$emit('refreshDataList')
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
       })
+    },
+    selectChange (val) {
+      this.dataForm.responsibilityPerson = val
     }
   }
 }
 </script>
 
 <style scoped>
-.my-line {
-  border-bottom: 1px solid #c0c4cc;
-  margin-bottom: 10px;
+.my-row {
+  margin-bottom: 20px;
 }
-.title {
-  padding: 10px 0;
+
+.radio-group-wrap {
+  display: flex;
+  align-items: flex-start;
+  flex-direction: column;
+  gap: 10px 15px; /* 行列间距控制 */
+}
+
+.radio-group-wrap :deep(.el-radio) {
+  margin-left: 0; /* 清除横向间距 */
 }
 </style>