|
@@ -9,26 +9,27 @@
|
|
|
size="small"
|
|
size="small"
|
|
|
style="max-width: 700px;"
|
|
style="max-width: 700px;"
|
|
|
>
|
|
>
|
|
|
- <el-form-item prop="examinationName" label="考级活动名称">
|
|
|
|
|
- <el-input v-model="formData.examinationName"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item prop="examinationStartTime" label="考级活动时间">
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="dateRange"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
|
- start-placeholder="请选择开始时间"
|
|
|
|
|
- end-placeholder="请选择结束时间"
|
|
|
|
|
- range-separator="至"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
- >
|
|
|
|
|
- </el-date-picker>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item prop="examinationAgency" label="考级机构名称">
|
|
|
|
|
- <el-input v-model="formData.examinationAgency"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item prop="category" label="单位类别">
|
|
|
|
|
- <!-- <el-select v-model="formData.category" clearable filterable placeholder="请选择">
|
|
|
|
|
|
|
+ <el-card shadow="hover" :body-style="{ padding: '20px' }">
|
|
|
|
|
+ <el-form-item prop="examinationName" label="考级活动名称">
|
|
|
|
|
+ <el-input class="input1" v-model="formData.examinationName"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examinationStartTime" label="考级活动时间">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ class="input2"
|
|
|
|
|
+ v-model="dateRange"
|
|
|
|
|
+ type="daterange"
|
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
|
+ start-placeholder="请选择开始时间"
|
|
|
|
|
+ end-placeholder="请选择结束时间"
|
|
|
|
|
+ range-separator="至"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-date-picker>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examinationAgency" label="考级机构名称">
|
|
|
|
|
+ <el-input class="input1" v-model="formData.examinationAgency"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="category" label="单位类别">
|
|
|
|
|
+ <!-- <el-select v-model="formData.category" clearable filterable placeholder="请选择">
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="item in categoryOptions"
|
|
v-for="item in categoryOptions"
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
@@ -37,133 +38,160 @@
|
|
|
>
|
|
>
|
|
|
</el-option>
|
|
</el-option>
|
|
|
</el-select> -->
|
|
</el-select> -->
|
|
|
- <el-input v-model="formData.category"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item prop="organizer" label="承办单位名称">
|
|
|
|
|
- <el-input v-model="formData.organizer"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item prop="uscc" label="统一社会信用代码">
|
|
|
|
|
- <el-input v-model="formData.uscc"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item prop="examinationDistrict" label="考级地点">
|
|
|
|
|
- <el-select v-model="formData.district" style="width: 100%;margin-bottom: 10px">
|
|
|
|
|
- <el-option
|
|
|
|
|
- v-for="item in district"
|
|
|
|
|
- :key="item.id"
|
|
|
|
|
- :value="item.name"
|
|
|
|
|
- :label="item.name"
|
|
|
|
|
- ></el-option>
|
|
|
|
|
- </el-select>
|
|
|
|
|
- <el-input type="textarea" :rows="3" v-model="formData.examinationAddress"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-row>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="examCenterQuantity" label="考场数量">
|
|
|
|
|
- <el-input-number v-model="formData.examCenterQuantity" class="date-width"></el-input-number>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="examQuantity" label="报考人数">
|
|
|
|
|
- <el-input-number v-model="formData.examQuantity" class="date-width"></el-input-number>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="examinerQuantity" label="考官人数">
|
|
|
|
|
- <el-input-number v-model="formData.examinerQuantity" class="date-width"></el-input-number>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="examOwner" label="考点负责人名称">
|
|
|
|
|
- <el-input v-model="formData.examOwner"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="examOwnerPhone" label="手机号">
|
|
|
|
|
- <el-input v-model="formData.examOwnerPhone"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="securityOwner" label="安全负责人名称">
|
|
|
|
|
- <el-input v-model="formData.securityOwner"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="securityOwnerPhone" label="手机号">
|
|
|
|
|
- <el-input v-model="formData.securityOwnerPhone"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="recordTime" label="备案时间">
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="formData.recordTime"
|
|
|
|
|
- type="date"
|
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
|
- placeholder="选择日期"
|
|
|
|
|
- >
|
|
|
|
|
- </el-date-picker>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-divider direction="horizontal" content-position="left">考级专业</el-divider>
|
|
|
|
|
- <el-table
|
|
|
|
|
- :data="recordSpecialties"
|
|
|
|
|
- row-key="id"
|
|
|
|
|
- ref="table"
|
|
|
|
|
- header-row-class-name="table-header-row"
|
|
|
|
|
- header-cell-class-name="table-header-cell"
|
|
|
|
|
- row-class-name="table-row"
|
|
|
|
|
- cell-class-name="table-cell"
|
|
|
|
|
- >
|
|
|
|
|
- <el-table-column prop="name" label="专业名称" width="100"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="code" label="专业代码"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="level" label="总级数"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="numOfExam" label="考场数量"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="examinerQuantity" label="考官人数">
|
|
|
|
|
- <template slot-scope="{ row }">
|
|
|
|
|
- <el-link @click="openDialog(row)">{{ row.examinerQuantity }}</el-link>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <div style="margin-top: 10px">
|
|
|
|
|
- <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
|
|
|
|
|
- <!-- <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button> -->
|
|
|
|
|
- <el-button @click="$router.go(-1)">取消</el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
|
+ <el-input class="input1" v-model="formData.category"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="organizer" label="承办单位名称">
|
|
|
|
|
+ <el-input class="input1" v-model="formData.organizer"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+
|
|
|
|
|
+ <el-collapse-transition>
|
|
|
|
|
+ <div v-show="showMore">
|
|
|
|
|
+ <el-form-item prop="uscc" label="统一社会信用代码">
|
|
|
|
|
+ <el-input class="input1" v-model="formData.uscc"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examinationDistrict" label="考级地点">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ class="input1"
|
|
|
|
|
+ v-model="formData.district"
|
|
|
|
|
+ style="margin-bottom: 10px;display:block"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in district"
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ :value="item.name"
|
|
|
|
|
+ :label="item.name"
|
|
|
|
|
+ ></el-option>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ type="textarea"
|
|
|
|
|
+ class="input2"
|
|
|
|
|
+ :rows="3"
|
|
|
|
|
+ v-model="formData.examinationAddress"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examCenterQuantity" label="考场数量">
|
|
|
|
|
+ <el-input-number v-model="formData.examCenterQuantity" class="input1"></el-input-number>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examQuantity" label="报考人数">
|
|
|
|
|
+ <el-input-number v-model="formData.examQuantity" class="input1"></el-input-number>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examinerQuantity" label="考官人数">
|
|
|
|
|
+ <el-input-number v-model="formData.examinerQuantity" class="input1"></el-input-number>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examOwner" label="考点负责人">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.examOwner"
|
|
|
|
|
+ suffix-icon="el-icon-user-solid"
|
|
|
|
|
+ class="input1"
|
|
|
|
|
+ placeholder="联系人"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="examOwnerPhone">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.examOwnerPhone"
|
|
|
|
|
+ suffix-icon="el-icon-phone"
|
|
|
|
|
+ class="input1"
|
|
|
|
|
+ placeholder="手机号"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+
|
|
|
|
|
+ <el-form-item prop="securityOwner" label="安全负责人">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.securityOwner"
|
|
|
|
|
+ suffix-icon="el-icon-user-solid"
|
|
|
|
|
+ class="input1"
|
|
|
|
|
+ placeholder="联系人"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="securityOwnerPhone" label="">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.securityOwnerPhone"
|
|
|
|
|
+ suffix-icon="el-icon-phone"
|
|
|
|
|
+ class="input1"
|
|
|
|
|
+ placeholder="手机号"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item prop="recordTime" label="备案时间">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ class="input1"
|
|
|
|
|
+ v-model="formData.recordTime"
|
|
|
|
|
+ type="date"
|
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-date-picker>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-collapse-transition>
|
|
|
|
|
+
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ class="more"
|
|
|
|
|
+ round
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ :plain="!showMore"
|
|
|
|
|
+ :icon="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
|
|
|
|
|
+ @click="showMore = !showMore"
|
|
|
|
|
+ ></el-button>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+
|
|
|
|
|
+ <el-card shadow="hover" :body-style="{ padding: '20px' }">
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ :data="recordSpecialties"
|
|
|
|
|
+ ref="table"
|
|
|
|
|
+ header-row-class-name="table-header-row"
|
|
|
|
|
+ header-cell-class-name="table-header-cell"
|
|
|
|
|
+ row-class-name="table-row"
|
|
|
|
|
+ cell-class-name="table-cell"
|
|
|
|
|
+ @expand-change="load"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-table-column type="expand">
|
|
|
|
|
+ <template slot-scope="props">
|
|
|
|
|
+ <el-card
|
|
|
|
|
+ shadow="hover"
|
|
|
|
|
+ :body-style="{ padding: '20px' }"
|
|
|
|
|
+ v-loading="!experts.has(props.row.id)"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ :data="experts.has(props.row.id) ? experts.get(props.row.id) : []"
|
|
|
|
|
+ row-key="id"
|
|
|
|
|
+ header-row-class-name="table-header-row"
|
|
|
|
|
+ header-cell-class-name="table-header-cell"
|
|
|
|
|
+ row-class-name="table-row"
|
|
|
|
|
+ cell-class-name="table-cell"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-table-column prop="name" label="名称" width="100"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="sex" label="性别"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="idNo" label="证件号码"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="external" label="是否外聘">
|
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
|
+ <span v-if="row.external">是</span>
|
|
|
|
|
+ <span v-else>否</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="position" label="职称">
|
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
|
+ <span v-if="row.position"> {{ row.position }} </span>
|
|
|
|
|
+ <span v-else>无</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="name" label="专业名称" width="100"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="code" label="专业代码"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="level" label="总级数"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="numOfExam" label="考场数量"> </el-table-column>
|
|
|
|
|
+ <el-table-column prop="examinerQuantity" label="考官人数">
|
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
|
+ <el-link @click="openDialog(row)">{{ row.examinerQuantity }}</el-link>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ <!-- card body -->
|
|
|
|
|
+ </el-card>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
- <el-dialog :visible.sync="dialogVisible" width="700px">
|
|
|
|
|
- <el-table
|
|
|
|
|
- :data="experts"
|
|
|
|
|
- row-key="id"
|
|
|
|
|
- header-row-class-name="table-header-row"
|
|
|
|
|
- header-cell-class-name="table-header-cell"
|
|
|
|
|
- row-class-name="table-row"
|
|
|
|
|
- cell-class-name="table-cell"
|
|
|
|
|
- >
|
|
|
|
|
- <el-table-column prop="name" label="名称" width="100"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="sex" label="性别"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="idNo" label="证件号码"> </el-table-column>
|
|
|
|
|
- <el-table-column prop="external" label="是否外聘">
|
|
|
|
|
- <template slot-scope="{ row }">
|
|
|
|
|
- <span v-if="row.external"> 是 </span>
|
|
|
|
|
- <span v-else>否</span>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="position" label="职称">
|
|
|
|
|
- <template slot-scope="{ row }">
|
|
|
|
|
- <span v-if="row.position"> {{ row.position }} </span>
|
|
|
|
|
- <span v-else>无</span>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
|
|
+ <el-dialog :visible.sync="dialogVisible" width="700px"> </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script>
|
|
<script>
|
|
@@ -188,7 +216,12 @@ export default {
|
|
|
{ body: 'json' }
|
|
{ body: 'json' }
|
|
|
)
|
|
)
|
|
|
.then(res => {
|
|
.then(res => {
|
|
|
- this.recordSpecialties = res.content;
|
|
|
|
|
|
|
+ this.recordSpecialties = res.content.map(item => {
|
|
|
|
|
+ return {
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ children: []
|
|
|
|
|
+ };
|
|
|
|
|
+ });
|
|
|
})
|
|
})
|
|
|
.catch(e => {
|
|
.catch(e => {
|
|
|
console.log(e);
|
|
console.log(e);
|
|
@@ -208,6 +241,7 @@ export default {
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
saving: false,
|
|
saving: false,
|
|
|
|
|
+ activeName: '1',
|
|
|
formData: {},
|
|
formData: {},
|
|
|
rules: {
|
|
rules: {
|
|
|
examOwnerPhone: {
|
|
examOwnerPhone: {
|
|
@@ -226,7 +260,8 @@ export default {
|
|
|
dateRange: [],
|
|
dateRange: [],
|
|
|
recordSpecialties: [],
|
|
recordSpecialties: [],
|
|
|
dialogVisible: false,
|
|
dialogVisible: false,
|
|
|
- experts: []
|
|
|
|
|
|
|
+ experts: new Map(),
|
|
|
|
|
+ showMore: false
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
@@ -273,6 +308,26 @@ export default {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
+ load(row) {
|
|
|
|
|
+ if (this.experts.has(row.id)) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ let experts = new Map([...this.experts]);
|
|
|
|
|
+ let list = [];
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('recordExpert/bySpecialtyId', { recordSpecialtyId: row.id })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ if (res.length > 0) {
|
|
|
|
|
+ list = res;
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {})
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ experts.set(row.id, list);
|
|
|
|
|
+ this.experts = experts;
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
openDialog(row) {
|
|
openDialog(row) {
|
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
|
this.$http
|
|
this.$http
|
|
@@ -289,6 +344,9 @@ export default {
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
<style lang="less" scoped>
|
|
|
|
|
+.edit-view {
|
|
|
|
|
+ background-color: transparent;
|
|
|
|
|
+}
|
|
|
.date-width {
|
|
.date-width {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
}
|
|
}
|
|
@@ -312,4 +370,20 @@ export default {
|
|
|
.el-link {
|
|
.el-link {
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
}
|
|
}
|
|
|
|
|
+.el-card + .el-card {
|
|
|
|
|
+ margin-top: 30px;
|
|
|
|
|
+}
|
|
|
|
|
+/deep/ .el-card__body {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+}
|
|
|
|
|
+.el-card {
|
|
|
|
|
+ overflow: visible;
|
|
|
|
|
+}
|
|
|
|
|
+.more {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ bottom: 0;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ transform: translate(-50%, 50%);
|
|
|
|
|
+ padding: 9px 9px;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|