wwf
昨天 737179a0ce34147269cccf288fecd0e7bb4c309b
src/views/main/appraisalPlan/index.vue
@@ -8,7 +8,7 @@
          <el-text class="text-title">评价计划</el-text>
        </el-row>
        <el-row class="mt-5">
        <el-row class="mt-5 custom-input">
          <el-input 
            v-model="filter.keyword" 
            style="width: 739px;height: 70px;"
@@ -24,7 +24,7 @@
      </div>
    </div>
    <div class="main-content py-4">
      <el-form-item label="等级:" class="mb-6">
      <el-form-item label="等级:" class="mb-4">
        <el-radio-group  v-model="filter.level">
          <el-radio
            v-for="(item,index) in levelItems"
@@ -35,7 +35,7 @@
          </el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="考点:" class="mb-6">
      <el-form-item label="考点:" class="mb-4">
        <el-select v-model="filter.area" placeholder="筛选地市" style="width: 240px">
          <el-option
            v-for="item in areaItems"
@@ -46,6 +46,38 @@
        </el-select>
      </el-form-item>
      <div v-if="calendarFlag">
        <el-row>
          <el-text class="text-lg ">评价计划月历</el-text>
        </el-row>
        <el-form-item class="my-2">
          <el-select v-model="year" placeholder="筛选年份" style="width: 240px">
            <el-option
              v-for="item in yearItems"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            />
          </el-select>
        </el-form-item>
        <el-table :data="monthList" border style="width: 100%" class="mb-6">
          <el-table-column
            v-for="(item,index) in monthHeaders"
            :prop="item.value"
            :label="item.label"
            :key="`month${index}`"
            align="center"
          >
            <template #default="{ row }">
              <div v-if="row[item.value]">
                <Icon icon="iconamoon:check-duotone" width="22" height="22"  style="color: var(--el-color-primary)" />
              </div>
              <span v-else></span>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <el-table 
        :data="filterList" 
        table-layout="auto" 
@@ -61,8 +93,24 @@
          :align="item.align || 'start'"
          :sortable="item.sortable"
        >
          <template #signupTime="{ row }">
            {{ row }}
          <template #default="{ row }">
            <div v-if="item.value=='signupTime'">
              <el-row>报名开始时间:{{ row.startTime }}</el-row>
              <el-row>报名结束时间:{{ row.endTime }}</el-row>
            </div>
            <div v-if="item.value=='orgInfo'">
              <el-row>机构名称:{{ row.orgInfo.name }}</el-row>
              <el-row>机构联系人:{{ row.orgInfo.concatName }}</el-row>
              <el-row>机构联系方式:{{ row.orgInfo.mobile }}</el-row>
            </div>
            <div v-if="item.value=='operation'">
              <el-row @click="signup(row)">
                <el-text v-if="row.signupFlag && userInfo.id">已报名</el-text>
                <el-text v-else tag="ins" class="text-primary cursor-p">
                  报名考试
                </el-text>
              </el-row>
            </div>
          </template>
        </el-table-column>
      </el-table>
@@ -78,12 +126,38 @@
        />
      </el-row>
    </div>
    <signupDialog
      v-model="signupDialogVisible"
      :currentPlan="currentPlan"
      @signupSuccess="signupSuccessDialogVisible=true"
    >
    </signupDialog>
    <signupSuccessDialog
      v-model="signupSuccessDialogVisible"
    ></signupSuccessDialog>
  </div>
  
</template>
<script>
import { useLoginStore } from '@/stores/login.js'
import { useSessionStore } from '@/stores/session.js'
import { storeToRefs } from 'pinia';
import signupDialog from '@/views/main/appraisalPlan/components/signupDialog.vue'
import signupSuccessDialog from '@/views/main/appraisalPlan/components/signupSuccessDialog.vue'
export default {
  components: {
    signupDialog,
    signupSuccessDialog
  },
  setup() {
    const { userInfo } = storeToRefs(useSessionStore())
    const { loginDialogVisible } = storeToRefs(useLoginStore())
    return { userInfo, loginDialogVisible }
  },
  data() {
    return {
      page: 1,
@@ -110,7 +184,7 @@
      ],
      noticeList: [],
      headers: [
        { label: '职业(工种)名称', value: 'occupationJob' },
        { label: '职业(工种)名称', value: 'occupationJob'},
        { label: '等级', value: 'level' },
        { label: '考点', value: 'examAddress' },
        { label: '评价计划名称', value: 'planName', width: 150 },
@@ -118,7 +192,36 @@
        { label: '评价机构信息', value: 'orgInfo' },
        { label: '操作', value: 'operation', align: 'center' },
      ],
      planList: []
      planList: [],
      calendarFlag: true,
      year: '2025',
      yearItems: [
        { label: '2022年', value: '2022' },
        { label: '2023年', value: '2023' },
        { label: '2024年', value: '2024' },
        { label: '2025年', value: '2025' },
        { label: '2026年', value: '2026' },
      ],
      monthHeaders: [
        { label: '1月', value: '1' },
        { label: '2月', value: '2' },
        { label: '3月', value: '3' },
        { label: '4月', value: '4' },
        { label: '5月', value: '5' },
        { label: '6月', value: '6' },
        { label: '7月', value: '7' },
        { label: '8月', value: '8' },
        { label: '9月', value: '9' },
        { label: '10月', value: '10' },
        { label: '11月', value: '11' },
        { label: '12月', value: '12' },
      ],
      monthList: [
        { 1: false, 2: false, 3: true, 4: true, 5: false, 6: false, 7: true, 8: false, 9: false, 10: true, 11: true, 12: false, }
      ],
      signupDialogVisible: false,
      currentPlan: {},
      signupSuccessDialogVisible: false
    }
  },
  computed: {
@@ -146,7 +249,8 @@
              name: '中山市技师学院',
              concatName: '吴*宁',
              mobile: '13424571164'
            }
            },
            signupFlag: false
          },
          {
            id: '2',
@@ -160,7 +264,8 @@
              name: '中山市技师学院',
              concatName: '吴*宁',
              mobile: '13424571164'
            }
            },
            signupFlag: true
          },
          {
            id: '3',
@@ -188,7 +293,8 @@
              name: '中山市技师学院',
              concatName: '吴*宁',
              mobile: '13424571164'
            }
            },
            signupFlag: false
          },
          {
            id: '5',
@@ -202,7 +308,8 @@
              name: '中山市技师学院',
              concatName: '吴*宁',
              mobile: '13424571164'
            }
            },
            signupFlag: false
          },
          {
            id: '6',
@@ -216,12 +323,22 @@
              name: '中山市技师学院',
              concatName: '吴*宁',
              mobile: '13424571164'
            }
            },
            signupFlag: false
          },
        ]
        this.totalCount = 6
      }, 400)
    },
    signup(item) {
      if (this.userInfo.id) {
        this.signupDialogVisible = true
        this.currentPlan = item
      } else {
        this.loginDialogVisible = true
        this.$message.primary('请先登录')
      }
    }
  }
}
@@ -233,7 +350,7 @@
  background-repeat: no-repeat, no-repeat, repeat; /* 分别设置 */
  background-size: cover;
}
:deep(.el-input__inner) {
.custom-input :deep(.el-input__inner) {
  padding-left: 10px;
  font-size: 18px;
}