|
@@ -2,47 +2,67 @@
|
|
|
<div class="pageIndexClass">
|
|
|
<div class="content">
|
|
|
<byTable :source="sourceList.data" :pagination="sourceList.pagination" :config="config" :loading="loading" highlight-current-row :action-list="[
|
|
|
- {
|
|
|
+
|
|
|
+ ]" @get-list="getList">
|
|
|
+
|
|
|
+ <!-- {
|
|
|
text: '添加',
|
|
|
action: () => openModal('add'),
|
|
|
- },
|
|
|
- ]" @get-list="getList">
|
|
|
+ }, -->
|
|
|
+
|
|
|
+ <template #nickName="{item}">
|
|
|
+ <div style="width:100%">
|
|
|
+ <span class="el-click" @click="clickPrint(item)">{{item.nickName}}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
</byTable>
|
|
|
</div>
|
|
|
|
|
|
- <el-dialog :title="modalType == 'add' ? '添加' : '编辑'" v-if="dialogVisible" v-model="dialogVisible" width="50%">
|
|
|
+ <el-dialog :title="modalType == 'add' ? '添加' : '编辑'" v-if="dialogVisible" v-model="dialogVisible" width="1000px">
|
|
|
<byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit" v-loading="loadingDialog">
|
|
|
<template #detail>
|
|
|
- <div style="width:100%">
|
|
|
- <el-button type="primary" @click="handleAdd()" plain style="margin-bottom: 16px">添加</el-button>
|
|
|
- <el-table :data="formData.data.userSalaryDetailList" style="width: 100%;">
|
|
|
- <el-table-column label="结构名称">
|
|
|
- <template #default="{ row, $index }">
|
|
|
- <el-form-item :prop="'userSalaryDetailList.' + $index + '.salaryStructureId'" :rules="rules.salaryStructureId"
|
|
|
- :inline-message="true" class="margin-b-0">
|
|
|
- <el-select v-model="row.salaryStructureId" placeholder="请选择" filterable style="width: 100%">
|
|
|
- <el-option v-for="item in salaryStructureData" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="金额" width="130">
|
|
|
- <template #default="{ row, $index }">
|
|
|
- <div style="width: 100%">
|
|
|
- <el-form-item :prop="'userSalaryDetailList.' + $index + '.money'" :rules="rules.money" :inline-message="true"
|
|
|
- class="margin-b-0 wid100">
|
|
|
- <el-input-number onmousewheel="return false;" v-model="row.money" placeholder="请输入" style="width: 100%" :precision="2"
|
|
|
- :controls="false" :min="0" @change="handleChangeAmount" />
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="操作" width="60" align="center" fixed="right">
|
|
|
- <template #default="{ $index }">
|
|
|
- <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ <div style="width:100%;padding:0 40px">
|
|
|
+ <table border="1" style="width: 100%" class="table">
|
|
|
+ <tr>
|
|
|
+ <td rowspan="5" style="width:5%">
|
|
|
+ 薪资
|
|
|
+ </td>
|
|
|
+ <td :colspan="salaryStructureData.length+2">
|
|
|
+ 考勤结算 or 业绩/记件结算
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="2" style="width:5%">考勤结算</td>
|
|
|
+ <td v-for="col in salaryStructureData" :key="col.value" :style="`width:${parseFloat(80/salaryStructureData.length).toFixed(2)}%`">
|
|
|
+ {{col.label}}
|
|
|
+ </td>
|
|
|
+ <td style="width:10%">合计</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td v-for="col in salaryStructureData" :key="col.value" :style="`width:${parseFloat(80/salaryStructureData.length).toFixed(2)}%`">
|
|
|
+ <!-- {{formData.data.salaryData[col.value+'-10']}} -->
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="formData.data.salaryData[col.value+'-10']" placeholder=" "
|
|
|
+ style="width: 100%" :precision="2" :controls="false" :min="0" @change="changeAmount('10')" />
|
|
|
+ </td>
|
|
|
+ <td>{{formData.data.amount}}</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="2">业绩/记件结算</td>
|
|
|
+ <td v-for="col in salaryStructureData" :key="col.value">
|
|
|
+ {{col.label}}
|
|
|
+ </td>
|
|
|
+ <td>合计</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td v-for="col in salaryStructureData" :key="col.value">
|
|
|
+ <!-- {{formData.data.salaryData[col.value+'-20']}} -->
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="formData.data.salaryData[col.value+'-20']" placeholder=" "
|
|
|
+ style="width: 100%" :precision="2" :controls="false" :min="0" @change="changeAmount('20')" />
|
|
|
+ </td>
|
|
|
+ <td>{{formData.data.perfAmount}}</td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -95,18 +115,39 @@
|
|
|
</byForm>
|
|
|
<template #footer>
|
|
|
<el-button @click="dialogVisible = false" size="default">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitForm()" size="default">确 定</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm()" size="default" v-if="modalType != 'detail'">确 定</el-button>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="打印" v-if="openPrint" v-model="openPrint" width="920">
|
|
|
<SalaryConfirmationPDF :rowData="rowData" @getList="getList"></SalaryConfirmationPDF>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog title="薪资变更记录" v-if="recordsDialog" v-model="recordsDialog" width="60%">
|
|
|
+ <el-table :data="recordsData">
|
|
|
+ <el-table-column prop="userName" label="员工姓名" width="110" />
|
|
|
+ <el-table-column prop="employeeType" label="劳动关系" width="90" :formatter="(row)=>dictValueLabel(row.employeeType,employeeTypeData)" />
|
|
|
+ <el-table-column prop="salaryRemark" label="薪资说明 " min-width="150" />
|
|
|
+ <el-table-column prop="amount" label="考勤结算金额 " width="110" />
|
|
|
+ <el-table-column prop="perfAmount" label="记件结算金额" width="110" />
|
|
|
+ <el-table-column prop="dataVer" label="版本号" width="100" />
|
|
|
+ <el-table-column prop="updateTime" label="变更时间" width="160" />
|
|
|
+ <el-table-column label="操作" width="60" align="center" fixed="right">
|
|
|
+ <template #default="{ row,$index }">
|
|
|
+ <el-button type="primary" link @click="handleGetDtl(row)">查看</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <template #footer>
|
|
|
+ <el-button @click="recordsDialog = false" size="default">关闭</el-button>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { computed, ref } from "vue";
|
|
|
+import { computed, ref, watch } from "vue";
|
|
|
import byTable from "@/components/byTable/index";
|
|
|
import byForm from "@/components/byForm/index";
|
|
|
import useUserStore from "@/store/modules/user";
|
|
@@ -148,68 +189,86 @@ const config = computed(() => {
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "员工姓名",
|
|
|
- prop: "nickName",
|
|
|
+ slot: "nickName",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "劳动关系",
|
|
|
- prop: "employeeType",
|
|
|
- },
|
|
|
- render(val) {
|
|
|
- return proxy.dictValueLabel(val, employeeTypeData.value);
|
|
|
+ label: "部门名称",
|
|
|
+ prop: "deptNames",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "试用期薪资比例",
|
|
|
- prop: "probationRatio",
|
|
|
- },
|
|
|
- render(val) {
|
|
|
- if (val) {
|
|
|
- return val + "%";
|
|
|
- }
|
|
|
+ label: "电话",
|
|
|
+ prop: "phonenumber",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "实习期薪资比例",
|
|
|
- prop: "internshipRatio",
|
|
|
+ label: "劳动关系",
|
|
|
+ prop: "employeeType",
|
|
|
+ width: 100,
|
|
|
},
|
|
|
render(val) {
|
|
|
- if (val) {
|
|
|
- return val + "%";
|
|
|
- }
|
|
|
+ return proxy.dictValueLabel(val, employeeTypeData.value);
|
|
|
},
|
|
|
},
|
|
|
+ // {
|
|
|
+ // attrs: {
|
|
|
+ // label: "试用期薪资比例(%)",
|
|
|
+ // prop: "probationRatio",
|
|
|
+ // },
|
|
|
+ // render(val) {
|
|
|
+ // if (val) {
|
|
|
+ // return val + "%";
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // attrs: {
|
|
|
+ // label: "实习期薪资比例(%)",
|
|
|
+ // prop: "internshipRatio",
|
|
|
+ // },
|
|
|
+ // render(val) {
|
|
|
+ // if (val) {
|
|
|
+ // return val + "%";
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // },
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "入职日期",
|
|
|
prop: "entryDate",
|
|
|
+ width: 110,
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "生效日期",
|
|
|
prop: "effectiveDate",
|
|
|
+ width: 110,
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "转正日期",
|
|
|
prop: "fullTimeDate",
|
|
|
+ width: 110,
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "考勤结算金额",
|
|
|
prop: "amount",
|
|
|
+ width: 120,
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "记件结算金额",
|
|
|
prop: "perfAmount",
|
|
|
+ width: 120,
|
|
|
},
|
|
|
},
|
|
|
// {
|
|
@@ -221,31 +280,33 @@ const config = computed(() => {
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "操作",
|
|
|
- width: "120",
|
|
|
+ width: "160",
|
|
|
align: "center",
|
|
|
},
|
|
|
renderHTML(row) {
|
|
|
return [
|
|
|
+ row.fullTimeDate
|
|
|
+ ? {}
|
|
|
+ : {
|
|
|
+ attrs: {
|
|
|
+ label: "编辑",
|
|
|
+ type: "primary",
|
|
|
+ text: true,
|
|
|
+ },
|
|
|
+ el: "button",
|
|
|
+ click() {
|
|
|
+ update(row);
|
|
|
+ },
|
|
|
+ },
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "修改",
|
|
|
- type: "primary",
|
|
|
- text: true,
|
|
|
- },
|
|
|
- el: "button",
|
|
|
- click() {
|
|
|
- update(row);
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- attrs: {
|
|
|
- label: "确认单",
|
|
|
+ label: "薪资变更记录",
|
|
|
type: "primary",
|
|
|
text: true,
|
|
|
},
|
|
|
el: "button",
|
|
|
click() {
|
|
|
- clickPrint(row);
|
|
|
+ clickRecords(row);
|
|
|
},
|
|
|
},
|
|
|
// {
|
|
@@ -314,12 +375,14 @@ const getDeptData = () => {
|
|
|
pageSize: 999,
|
|
|
})
|
|
|
.then((res) => {
|
|
|
- salaryStructureData.value = res.rows.map((item) => {
|
|
|
- return {
|
|
|
- label: item.name,
|
|
|
- value: item.id,
|
|
|
- };
|
|
|
- });
|
|
|
+ salaryStructureData.value = res.rows
|
|
|
+ .map((item) => {
|
|
|
+ return {
|
|
|
+ label: item.name,
|
|
|
+ value: item.id,
|
|
|
+ };
|
|
|
+ })
|
|
|
+ .reverse();
|
|
|
});
|
|
|
};
|
|
|
getDeptData();
|
|
@@ -330,7 +393,7 @@ const loadingDialog = ref(false);
|
|
|
const submit = ref(null);
|
|
|
const formOption = reactive({
|
|
|
inline: true,
|
|
|
- labelWidth: 120,
|
|
|
+ labelWidth: 150,
|
|
|
itemWidth: 100,
|
|
|
rules: [],
|
|
|
});
|
|
@@ -355,26 +418,35 @@ const formConfig = computed(() => {
|
|
|
itemWidth: 50,
|
|
|
disabled: false,
|
|
|
data: employeeTypeData.value,
|
|
|
+ fn: () => {
|
|
|
+ changeAmount();
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
type: "number",
|
|
|
prop: "probationRatio",
|
|
|
- label: "试用期薪资比例",
|
|
|
+ label: "试用期薪资比例(%)",
|
|
|
precision: 2,
|
|
|
min: 0,
|
|
|
max: 100,
|
|
|
controls: false,
|
|
|
itemWidth: 50,
|
|
|
+ fn: () => {
|
|
|
+ changeAmount();
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
type: "number",
|
|
|
prop: "internshipRatio",
|
|
|
- label: "实习期薪资比例",
|
|
|
+ label: "实习期薪资比例(%)",
|
|
|
precision: 2,
|
|
|
min: 0,
|
|
|
max: 100,
|
|
|
controls: false,
|
|
|
itemWidth: 50,
|
|
|
+ fn: () => {
|
|
|
+ changeAmount();
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
type: "date",
|
|
@@ -448,6 +520,13 @@ const formConfig = computed(() => {
|
|
|
itemType: "textarea",
|
|
|
itemWidth: 100,
|
|
|
},
|
|
|
+ {
|
|
|
+ type: "upload",
|
|
|
+ listType: "text",
|
|
|
+ accept: "",
|
|
|
+ prop: "fileList",
|
|
|
+ label: "签字附件",
|
|
|
+ },
|
|
|
// {
|
|
|
// type: "date",
|
|
|
// itemType: "datetime",
|
|
@@ -489,14 +568,14 @@ const formConfig = computed(() => {
|
|
|
// itemWidth: 50,
|
|
|
// disabled: true,
|
|
|
// },
|
|
|
- // {
|
|
|
- // type: "title1",
|
|
|
- // title: "薪资结构",
|
|
|
- // },
|
|
|
- // {
|
|
|
- // type: "slot",
|
|
|
- // slotName: "detail",
|
|
|
- // },
|
|
|
+ {
|
|
|
+ type: "title1",
|
|
|
+ title: "薪资",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "slot",
|
|
|
+ slotName: "detail",
|
|
|
+ },
|
|
|
];
|
|
|
});
|
|
|
const rules = ref({
|
|
@@ -514,7 +593,7 @@ const rules = ref({
|
|
|
{ required: true, message: "请选择结构名称", trigger: "change" },
|
|
|
],
|
|
|
money: [{ required: true, message: "请输入金额", trigger: "blur" }],
|
|
|
- fileList: [{ required: true, message: "请上传签字文件", trigger: "change" }],
|
|
|
+ // fileList: [{ required: true, message: "请上传签字文件", trigger: "change" }],
|
|
|
// remark: [{ required: true, message: "请输入说明", trigger: "blur" }],
|
|
|
entryDate: [{ required: true, message: "请选择入职日期", trigger: "change" }],
|
|
|
effectiveDate: [
|
|
@@ -628,6 +707,18 @@ const submitForm = () => {
|
|
|
// formData.data.afternoonBeginTime = formData.data.afternoon[0];
|
|
|
// formData.data.afternoonEndTime = formData.data.afternoon[1];
|
|
|
// }
|
|
|
+
|
|
|
+ let userSalaryDetailList = [];
|
|
|
+ for (const key in formData.data.salaryData) {
|
|
|
+ let arr = key.split("-");
|
|
|
+ userSalaryDetailList.push({
|
|
|
+ salaryStructureId: arr[0],
|
|
|
+ type: arr[1],
|
|
|
+ money: formData.data.salaryData[key],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ formData.data.userSalaryDetailList = userSalaryDetailList;
|
|
|
+
|
|
|
loadingDialog.value = true;
|
|
|
proxy.post("/userSalaryManage/edit", formData.data).then(
|
|
|
() => {
|
|
@@ -670,10 +761,19 @@ const submitForm = () => {
|
|
|
};
|
|
|
|
|
|
const update = (row) => {
|
|
|
+ formOption.disabled = false;
|
|
|
loadingDialog.value = false;
|
|
|
modalType.value = "edit";
|
|
|
proxy.post("/userSalaryManage/detail", { userId: row.userId }).then((res) => {
|
|
|
+ res.salaryData = {};
|
|
|
+ if (res.userSalaryDetailList && res.userSalaryDetailList.length > 0) {
|
|
|
+ for (let i = 0; i < res.userSalaryDetailList.length; i++) {
|
|
|
+ const row = res.userSalaryDetailList[i];
|
|
|
+ res.salaryData[row.salaryStructureId + "-" + row.type] = row.money;
|
|
|
+ }
|
|
|
+ }
|
|
|
formData.data = res;
|
|
|
+
|
|
|
// if (!res.morningBeginTime) {
|
|
|
// formData.data.morning = [];
|
|
|
// } else {
|
|
@@ -708,8 +808,8 @@ const update = (row) => {
|
|
|
formData.data.fileList = [];
|
|
|
}
|
|
|
});
|
|
|
+ dialogVisible.value = true;
|
|
|
});
|
|
|
- dialogVisible.value = true;
|
|
|
};
|
|
|
|
|
|
const openPrint = ref(false);
|
|
@@ -720,6 +820,103 @@ const clickPrint = (row) => {
|
|
|
};
|
|
|
openPrint.value = true;
|
|
|
};
|
|
|
+
|
|
|
+const changeRatio = () => {
|
|
|
+ let ratio = 1;
|
|
|
+ if (
|
|
|
+ formData.data.employeeType &&
|
|
|
+ formData.data.internshipRatio &&
|
|
|
+ formData.data.probationRatio
|
|
|
+ ) {
|
|
|
+ switch (formData.data.employeeType) {
|
|
|
+ case "10":
|
|
|
+ ratio = parseFloat(formData.data.internshipRatio / 100).toFixed(2);
|
|
|
+ break;
|
|
|
+ case "20":
|
|
|
+ ratio = parseFloat(formData.data.probationRatio / 100).toFixed(2);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ formData.data.amount = parseFloat(
|
|
|
+ formData.data.amount * Number(ratio)
|
|
|
+ ).toFixed(2);
|
|
|
+ formData.data.perfAmount = parseFloat(
|
|
|
+ formData.data.perfAmount * Number(ratio)
|
|
|
+ ).toFixed(2);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const changeAmount = (type) => {
|
|
|
+ let userSalaryDetailList = [];
|
|
|
+ for (const key in formData.data.salaryData) {
|
|
|
+ let arr = key.split("-");
|
|
|
+ userSalaryDetailList.push({
|
|
|
+ salaryStructureId: arr[0],
|
|
|
+ type: arr[1],
|
|
|
+ money: formData.data.salaryData[key],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ formData.data.userSalaryDetailList = userSalaryDetailList;
|
|
|
+ let amount = formData.data.userSalaryDetailList
|
|
|
+ .filter((x) => x.type == "10")
|
|
|
+ .reduce(
|
|
|
+ (total, x) => Number(parseFloat((total += Number(x.money))).toFixed(2)),
|
|
|
+ 0
|
|
|
+ );
|
|
|
+ formData.data.amount = amount;
|
|
|
+ let perfAmount = formData.data.userSalaryDetailList
|
|
|
+ .filter((x) => x.type == "20")
|
|
|
+ .reduce(
|
|
|
+ (total, x) => Number(parseFloat((total += Number(x.money))).toFixed(2)),
|
|
|
+ 0
|
|
|
+ );
|
|
|
+ formData.data.perfAmount = perfAmount;
|
|
|
+ changeRatio();
|
|
|
+};
|
|
|
+
|
|
|
+const recordsDialog = ref(false);
|
|
|
+const recordsData = ref([]);
|
|
|
+const clickRecords = (row) => {
|
|
|
+ recordsDialog.value = true;
|
|
|
+ proxy
|
|
|
+ .post("/userSalaryManage/getHistoryVerList", { userId: row.userId })
|
|
|
+ .then((res) => {
|
|
|
+ recordsData.value = res;
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+const handleGetDtl = (res) => {
|
|
|
+ formOption.disabled = true;
|
|
|
+ loadingDialog.value = false;
|
|
|
+ modalType.value = "detail";
|
|
|
+ res.salaryData = {};
|
|
|
+ if (res.userSalaryDetailList && res.userSalaryDetailList.length > 0) {
|
|
|
+ for (let i = 0; i < res.userSalaryDetailList.length; i++) {
|
|
|
+ const row = res.userSalaryDetailList[i];
|
|
|
+ res.salaryData[row.salaryStructureId + "-" + row.type] = row.money;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ formData.data = res;
|
|
|
+ proxy
|
|
|
+ .post("/fileInfo/getList", { businessIdList: [res.userId] })
|
|
|
+ .then((fileObj) => {
|
|
|
+ if (fileObj[res.userId] && fileObj[res.userId].length > 0) {
|
|
|
+ formData.data.fileList = fileObj[res.userId]
|
|
|
+ .filter((x) => x.businessType == "10")
|
|
|
+ .map((item) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ name: item.fileName,
|
|
|
+ url: item.fileUrl,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ formData.data.fileList = [];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ dialogVisible.value = true;
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@@ -729,4 +926,27 @@ const clickPrint = (row) => {
|
|
|
::v-deep(.el-input-number .el-input__inner) {
|
|
|
text-align: left;
|
|
|
}
|
|
|
+
|
|
|
+.table {
|
|
|
+ .title {
|
|
|
+ font-size: 26px;
|
|
|
+ // font-weight: 700;
|
|
|
+ }
|
|
|
+ border-collapse: collapse;
|
|
|
+ border-spacing: 0;
|
|
|
+ width: 100%;
|
|
|
+ td {
|
|
|
+ text-align: center;
|
|
|
+ padding: 6px;
|
|
|
+ font-size: 12px;
|
|
|
+ // padding: 5px 10px;
|
|
|
+ }
|
|
|
+ .align-right {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.table .el-input__wrapper) {
|
|
|
+ box-shadow: none;
|
|
|
+}
|
|
|
</style>
|