|
@@ -1,365 +1,252 @@
|
|
|
<template>
|
|
|
- <div class="form">
|
|
|
- <van-tabs v-model:active="active">
|
|
|
- <van-tab title="申购信息">
|
|
|
- <div class="common-process-card">
|
|
|
- <div class="common-title">申购信息</div>
|
|
|
- <van-form
|
|
|
- @submit="onSubmit"
|
|
|
- label-align="top"
|
|
|
- style="margin-top: 20px"
|
|
|
- :readonly="route.query.processType == 10 || route.query.processType == 20">
|
|
|
- <van-cell-group inset>
|
|
|
- <van-field
|
|
|
- v-model="formData.deptName"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- :label="$t('purchased.procurementDepartment')"
|
|
|
- :placeholder="$t('purchased.selectProcurementDepartment')"
|
|
|
- :rules="[{ required: true, message: $t('purchased.procurementDepartmentCanNotBeEmpty') }]"
|
|
|
- @click="route.query.processType == 10 || route.query.processType == 20 ? typeModal = false : typeModal = true"
|
|
|
- :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
|
|
|
- />
|
|
|
- <van-popup v-model:show="typeModal" round position="bottom">
|
|
|
- <van-picker
|
|
|
- :columns="columns"
|
|
|
- @cancel="typeModal = false"
|
|
|
- @confirm="onConfirm"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
- <van-field
|
|
|
- v-model="formData.subcribeName"
|
|
|
- type="text"
|
|
|
- :name="$t('purchased.procurementPersonName')"
|
|
|
- :label="$t('purchased.procurementPersonName')"
|
|
|
- :placeholder="$t('purchased.pleaseFillInTheProcurementPersonName')"
|
|
|
- :rules="[{ required: true, message: $t('purchased.procurementPersonNameCanNotBeEmpty') }]"
|
|
|
- :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.subcribeTime"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- name="datePicker"
|
|
|
- :label="$t('purchased.procurementTime')"
|
|
|
- :placeholder="$t('purchased.clickToSelectTime')"
|
|
|
- :rules="[{ required: true, message: $t('purchased.procurementTimeCanNotBeEmpty') }]"
|
|
|
- @click="route.query.processType == 10 || route.query.processType == 20 ? timePicker = false : timePicker = true"
|
|
|
- :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
|
|
|
- />
|
|
|
- <van-popup v-model:show="timePicker" position="bottom">
|
|
|
- <van-date-picker
|
|
|
- @confirm="timeOnConfirm"
|
|
|
- @cancel="timePicker = false"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
- <van-field
|
|
|
- v-model="formData.subcribeContent"
|
|
|
- type="textarea"
|
|
|
- :name="$t('purchased.procurementDescription')"
|
|
|
- :label="$t('purchased.procurementDescription')"
|
|
|
- :placeholder="$t('purchased.pleaseFillInTheProcurementDescription')"
|
|
|
- rows="3"
|
|
|
- />
|
|
|
- </van-cell-group>
|
|
|
-
|
|
|
-
|
|
|
- </van-form>
|
|
|
- </div>
|
|
|
- </van-tab>
|
|
|
- <van-tab title="明细">
|
|
|
- <div class="common-process-card">
|
|
|
- <div class="common-title">明细</div>
|
|
|
- <!-- 明细列表 -->
|
|
|
- <div v-if="route.query.processType != 10 && route.query.processType != 20">
|
|
|
- <div
|
|
|
- v-for="(item, index) in formData.subscribeDetailList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div class="commons-delete">
|
|
|
- <div class="title">{{$t('common.details')}}{{ index + 1 }}</div>
|
|
|
- <div
|
|
|
- class="delete"
|
|
|
- @click.native="handleDel(index)"
|
|
|
- v-if="!route.query.id"
|
|
|
- >
|
|
|
- <van-icon name="cross" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <van-cell-group inset>
|
|
|
- <van-field
|
|
|
- v-model="formData.subscribeDetailList[index].bussinessName"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- :label="$t('purchased.procurementProduct')"
|
|
|
- :placeholder="$t('purchased.selectProcurementProduct')"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
- @click="handleSelect(index)"
|
|
|
- :rules="[
|
|
|
- { required: true, message: $t('purchased.procurementProductCanNotBeEmpty') },
|
|
|
- ]"
|
|
|
- :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.subscribeDetailList[index].count"
|
|
|
- :label="$t('subscribe.quantity')"
|
|
|
- :placeholder="$t('subscribe.pleaseEnterTheQuantity')"
|
|
|
- :rules="[{ required: true, message: $t('subscribe.quantityCanNotBeEmpty') }]"
|
|
|
- :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
|
|
|
- type="number"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
- />
|
|
|
-
|
|
|
- <van-field
|
|
|
- v-model="formData.subscribeDetailList[index].content"
|
|
|
- :label="$t('subscribe.cause')"
|
|
|
- :placeholder="$t('subscribe.pleaseEnterTheCause')"
|
|
|
- :rules="[
|
|
|
- { required: true, message: $t('subscribe.causeCanNotBeEmpty') },
|
|
|
- ]"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
- rows="3"
|
|
|
- type="textarea"
|
|
|
- :required="route.query.processType == 10 || route.query.processType == 20 ? false : true"
|
|
|
- />
|
|
|
- </van-cell-group>
|
|
|
- </div>
|
|
|
- <van-popup v-model:show="typeModalOne" round position="bottom">
|
|
|
- <van-picker
|
|
|
- :columns="columnsOne"
|
|
|
- @cancel="typeModalOne = false"
|
|
|
- @confirm="(data) => onConfirmOne(data)"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
- <div class="commons-add-btn" v-if="!route.query.id">
|
|
|
- <van-button
|
|
|
- icon="plus"
|
|
|
- type="default"
|
|
|
- size="small"
|
|
|
- style="margin-top: 10px"
|
|
|
- block
|
|
|
- @click="handleAddRow"
|
|
|
- >{{$t('common.addDetails')}}</van-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- <div style="margin: 16px" v-if="!route.query.id">
|
|
|
- <van-button round block type="primary" native-type="submit">
|
|
|
- {{$t('common.submit')}}
|
|
|
- </van-button>
|
|
|
- </div> -->
|
|
|
- <div class="common-mobile-table" v-else>
|
|
|
- <table>
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th>申购产品</th>
|
|
|
- <th>数量</th>
|
|
|
- <th>事由</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tbody>
|
|
|
- <tr v-for="(i,index) in formData.subscribeDetailList" :key="index">
|
|
|
- <td>{{ i.name || i.bussinessName }}</td>
|
|
|
- <td>{{ i.count }}</td>
|
|
|
- <td>{{ i.remark || i.content }}</td>
|
|
|
- </tr>
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </van-tab>
|
|
|
- </van-tabs>
|
|
|
-
|
|
|
- </div>
|
|
|
+ <div class="form">
|
|
|
+ <van-tabs v-model:active="active">
|
|
|
+ <van-tab :title="'申购信息'" :name="0" />
|
|
|
+ <van-tab title="申购明细" :name="1" />
|
|
|
+ <div class="common-process-card" v-show="active == 0">
|
|
|
+ <testForm v-model="formData.data" :formOption="formOption" :formConfig="formConfig" :rules="rules" ref="formDom1">
|
|
|
+ </testForm>
|
|
|
+ </div>
|
|
|
+ <div class="common-process-card" v-show="active == 1">
|
|
|
+ <testForm v-model="formData.data" :formOption="formGoodsOption" :formConfig="formEmptyConfig" :rules="rules" ref="formDom2">
|
|
|
+ </testForm>
|
|
|
+ </div>
|
|
|
+ </van-tabs>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { ref, getCurrentInstance, onMounted,defineProps,defineExpose,watch } from 'vue'
|
|
|
-import { showSuccessToast, showFailToast } from 'vant'
|
|
|
-import { useRoute } from 'vue-router'
|
|
|
+import {
|
|
|
+ ref,
|
|
|
+ getCurrentInstance,
|
|
|
+ onMounted,
|
|
|
+ defineProps,
|
|
|
+ defineExpose,
|
|
|
+ watch,
|
|
|
+ reactive,
|
|
|
+ toRefs,
|
|
|
+} from "vue";
|
|
|
+import { useRoute } from "vue-router";
|
|
|
+import testForm from "@/components/testForm/index.vue";
|
|
|
+import { getUserInfo } from "@/utils/auth";
|
|
|
+import { showFailToast } from "vant";
|
|
|
+
|
|
|
// 接收父组件的传值
|
|
|
const props = defineProps({
|
|
|
- queryData: String,
|
|
|
+ queryData: Object,
|
|
|
});
|
|
|
-
|
|
|
-const proxy = getCurrentInstance().proxy
|
|
|
-const route = useRoute()
|
|
|
-const typeModal = ref(false)
|
|
|
-const typeModalOne = ref(false)
|
|
|
-let selectIndex = ref(null)
|
|
|
-const timePicker = ref(false)
|
|
|
-const formData = ref({
|
|
|
- productionTaskId: '',
|
|
|
- code: '',
|
|
|
- productName: '',
|
|
|
- quantity: '',
|
|
|
- personLiableName: '',
|
|
|
- dueDate: '',
|
|
|
- subscribeDetailList: [],
|
|
|
-})
|
|
|
-
|
|
|
-const active = ref(0)
|
|
|
+const refProps = toRefs(props);
|
|
|
+const proxy = getCurrentInstance().proxy;
|
|
|
+const route = useRoute();
|
|
|
+const active = ref(0);
|
|
|
const tabsChange = () => {
|
|
|
- active.value ++
|
|
|
-}
|
|
|
+ active.value++;
|
|
|
+};
|
|
|
+const innerMethod = ref([]);
|
|
|
+const outsideMethod = ref([]);
|
|
|
|
|
|
-const handleAddRow = () => {
|
|
|
- console.log(formData.value)
|
|
|
- if(!formData.value.subscribeDetailList) formData.value.subscribeDetailList = []
|
|
|
- formData.value.subscribeDetailList.push({
|
|
|
- bussinessId: '',
|
|
|
- bussinessName: '',
|
|
|
- name: '',
|
|
|
- quantity: '',
|
|
|
- content:"",
|
|
|
- count:"",
|
|
|
- })
|
|
|
-}
|
|
|
-watch(
|
|
|
- props.queryData,
|
|
|
- () => {
|
|
|
- if (props.queryData && ["10", "20", "30"].includes(route.query.processType)) {
|
|
|
- for (const key in props.queryData) {
|
|
|
- formData.data[key] = props.queryData[key];
|
|
|
- }
|
|
|
- }
|
|
|
+const formData = reactive({
|
|
|
+ data: {},
|
|
|
+});
|
|
|
+const formDom1 = ref(null);
|
|
|
+const formDom2 = ref(null);
|
|
|
+
|
|
|
+const formOption = reactive({
|
|
|
+ readonly: false,
|
|
|
+ disabled: false,
|
|
|
+ labelAlign: "top",
|
|
|
+ scroll: true,
|
|
|
+ labelWidth: "62pk",
|
|
|
+ hiddenSubmitBtn: true,
|
|
|
+});
|
|
|
+const formConfig = reactive([
|
|
|
+ // {
|
|
|
+ // type: "title",
|
|
|
+ // title: "申购信息",
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: "申购部门",
|
|
|
+ prop: "deptName",
|
|
|
+ itemType: "text",
|
|
|
+ readonly: true,
|
|
|
},
|
|
|
{
|
|
|
- deep: true,
|
|
|
- }
|
|
|
-);
|
|
|
-const timeOnConfirm = ({ selectedValues }) => {
|
|
|
- formData.value.subcribeTime = selectedValues.join('-')
|
|
|
- timePicker.value = false
|
|
|
-}
|
|
|
-
|
|
|
-const getDict = () => {
|
|
|
- proxy
|
|
|
- .get('/tenantDept/list', { pageNum: 1, pageSize: 9999 })
|
|
|
- .then((res) => {
|
|
|
- columns.value = res.data.map((item) => {
|
|
|
- return {
|
|
|
- ...item,
|
|
|
- text: item.deptName,
|
|
|
- value: item.deptId,
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- setInterval(() => {
|
|
|
- //停止循环
|
|
|
- if (proxy.queryData) {
|
|
|
- formData.value = proxy.queryData
|
|
|
- clearInterval()
|
|
|
- }
|
|
|
- }, 1000)
|
|
|
- proxy
|
|
|
- .post('/productInfo/page', { pageNum: 1, pageSize: 9999 })
|
|
|
- .then((res) => {
|
|
|
- columnsOne.value = res.data.rows.map((item) => {
|
|
|
- return {
|
|
|
- ...item,
|
|
|
- text: item.name,
|
|
|
- value: item.id,
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-const getDetails = (id) => {
|
|
|
- proxy.post('/subscribe/detail', { id:id }).then((res) => {
|
|
|
- res.data.subscribeDetailList.map((item) => {
|
|
|
- columnsOne.value.map((itemOne) => {
|
|
|
- if(itemOne.value === item.bussinessId) {
|
|
|
- item.bussinessName = itemOne.name
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- })
|
|
|
- formData.value = res.data
|
|
|
-
|
|
|
-
|
|
|
- console.log(formData.value)
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-const columns = ref([])
|
|
|
-const columnsOne = ref([])
|
|
|
-const submitType = ref('add')
|
|
|
-
|
|
|
-const onConfirm = ({ selectedOptions }) => {
|
|
|
- formData.value.deptName = selectedOptions[0].text
|
|
|
- formData.value.productionTaskId = selectedOptions[0].value
|
|
|
- formData.value.productName = selectedOptions[0].productName
|
|
|
- formData.value.quantity = selectedOptions[0].quantity
|
|
|
- formData.value.personLiableName = selectedOptions[0].personLiableName
|
|
|
- formData.value.dueDate = selectedOptions[0].dueDate
|
|
|
- typeModal.value = false
|
|
|
-}
|
|
|
+ type: "input",
|
|
|
+ label: "申购人名称",
|
|
|
+ prop: "subcribeName",
|
|
|
+ itemType: "text",
|
|
|
+ readonly: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "picker",
|
|
|
+ label: "申购时间",
|
|
|
+ prop: "subcribeTime",
|
|
|
+ itemType: "datePicker",
|
|
|
+ showPicker: false,
|
|
|
+ split: "-",
|
|
|
+ columnsType: ["year", "month", "day"],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: "申购说明",
|
|
|
+ prop: "subcribeContent",
|
|
|
+ itemType: "textarea",
|
|
|
+ readonly: true,
|
|
|
+ },
|
|
|
+]);
|
|
|
|
|
|
-const onConfirmOne = ({ selectedOptions }) => {
|
|
|
- formData.value.subscribeDetailList[selectIndex.value].bussinessId =
|
|
|
- selectedOptions[0].value
|
|
|
- formData.value.subscribeDetailList[selectIndex.value].bussinessName =
|
|
|
- selectedOptions[0].text
|
|
|
- typeModalOne.value = false
|
|
|
-}
|
|
|
+const formGoodsOption = reactive({
|
|
|
+ readonly: true,
|
|
|
+ disabled: false,
|
|
|
+ labelAlign: "top",
|
|
|
+ scroll: false,
|
|
|
+ labelWidth: "62pk",
|
|
|
+ hiddenSubmitBtn: true,
|
|
|
+ btnConfig: {
|
|
|
+ isNeed: false,
|
|
|
+ prop: "subscribeDetailList",
|
|
|
+ plain: true,
|
|
|
+ listTitle: "物料信息",
|
|
|
+ listConfig: [
|
|
|
+ {
|
|
|
+ type: "picker",
|
|
|
+ label: "商品名称",
|
|
|
+ prop: "productId",
|
|
|
+ itemType: "onePicker",
|
|
|
+ showPicker: false,
|
|
|
+ readonly: false,
|
|
|
+ fieldNames: {
|
|
|
+ text: "name",
|
|
|
+ value: "id",
|
|
|
+ },
|
|
|
+ data: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: "商品编码",
|
|
|
+ prop: "productCode",
|
|
|
+ itemType: "text",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: "尺寸 (cm)",
|
|
|
+ prop: "productModel",
|
|
|
+ itemType: "text",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: "申购数量",
|
|
|
+ prop: "count",
|
|
|
+ itemType: "number",
|
|
|
+ changeFn: () => {
|
|
|
+ calculatedAmount();
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: "备注",
|
|
|
+ prop: "remark",
|
|
|
+ itemType: "textarea",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ clickFn: () => {},
|
|
|
+ deleteFn: (index) => {},
|
|
|
+ },
|
|
|
+});
|
|
|
|
|
|
-const handleSelect = (index) => {
|
|
|
- if(submitType.value === 'edit') return
|
|
|
- selectIndex.value = index
|
|
|
- typeModalOne.value = true
|
|
|
-}
|
|
|
+const rules = {
|
|
|
+ contractType: [
|
|
|
+ { required: true, message: proxy.t("contract.contractTypeMsg") },
|
|
|
+ ],
|
|
|
+ contractTemplateId: [
|
|
|
+ { required: true, message: proxy.t("contract.contractTemplateIdMsg") },
|
|
|
+ ],
|
|
|
+ sellCorporationId: [
|
|
|
+ { required: true, message: proxy.t("contract.sellCorporationIdMsg") },
|
|
|
+ ],
|
|
|
+ buyCorporationId: [
|
|
|
+ { required: true, message: proxy.t("contract.buyCorporationIdMsg") },
|
|
|
+ ],
|
|
|
+ sellCity: [{ required: true, message: proxy.t("contract.cityMsg") }],
|
|
|
+ countryCity: [{ required: true, message: proxy.t("contract.cityMsg") }],
|
|
|
+ sellAddress: [{ required: true, message: proxy.t("contract.addressMsg") }],
|
|
|
+ buyAddress: [{ required: true, message: proxy.t("contract.addressMsg") }],
|
|
|
+ sellContactName: [
|
|
|
+ { required: true, message: proxy.t("contract.contactNameMsg") },
|
|
|
+ ],
|
|
|
+ sellContactNumber: [
|
|
|
+ { required: true, message: proxy.t("contract.contactNumberMsg") },
|
|
|
+ ],
|
|
|
+ // buyPostalCode: [{ required: true, message: proxy.t("contract.postalCodeMsg") }],
|
|
|
+ buyContactName: [
|
|
|
+ { required: true, message: proxy.t("contract.contactNameMsg") },
|
|
|
+ ],
|
|
|
+ buyContactNumber: [
|
|
|
+ { required: true, message: proxy.t("contract.contactNumberMsg") },
|
|
|
+ ],
|
|
|
+ productId: [{ required: true, message: proxy.t("contract.productIdMsg") }],
|
|
|
+ productName: [
|
|
|
+ { required: true, message: proxy.t("contract.productNameMsg") },
|
|
|
+ ],
|
|
|
+ productModel: [
|
|
|
+ { required: true, message: proxy.t("contract.productModelMsg") },
|
|
|
+ ],
|
|
|
+ quantity: [{ required: true, message: proxy.t("contract.quantityMsg") }],
|
|
|
+ price: [{ required: true, message: proxy.t("contract.priceMsg") }],
|
|
|
+ payName: [{ required: true, message: proxy.t("contract.chargeItemMsg") }],
|
|
|
+ amount: [{ required: true, message: proxy.t("contract.amountMsg") }],
|
|
|
+};
|
|
|
|
|
|
-const handleDel = (index) => {
|
|
|
- formData.value.subscribeDetailList.splice(index, 1)
|
|
|
-}
|
|
|
+const getDict = () => {
|
|
|
+ proxy
|
|
|
+ .post("/productInfo/page", {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 9999,
|
|
|
+ definition: "2",
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ formGoodsOption.btnConfig.listConfig[0].data = res.data.rows;
|
|
|
+ });
|
|
|
+};
|
|
|
+getDict();
|
|
|
|
|
|
-const onClickLeft = () => history.back()
|
|
|
const handleSubmit = async () => {
|
|
|
- return formData.value;
|
|
|
+ if (status) {
|
|
|
+ return formData.data;
|
|
|
+ }
|
|
|
};
|
|
|
-const onSubmit = () => {
|
|
|
- if (!formData.value.subscribeDetailList.length > 0)
|
|
|
- return showFailToast(proxy.t('common.pleaseAddDetails'))
|
|
|
- proxy.post('/flowProcess/initiate', {
|
|
|
- flowKey: 'subscribe_flow',
|
|
|
- data:formData.value,
|
|
|
- remark:null,
|
|
|
- }).then(
|
|
|
- (res) => {
|
|
|
- setTimeout(() => {
|
|
|
- showSuccessToast(proxy.t('common.procurementSuccess'))
|
|
|
- proxy.$router.push('/main/subscribe')
|
|
|
- }, 500)
|
|
|
- },
|
|
|
- (err) => {
|
|
|
- return showFailToast(err.message)
|
|
|
- }
|
|
|
- )
|
|
|
-}
|
|
|
+let status = ref(true);
|
|
|
+onMounted(() => {
|
|
|
+ if (route.query && route.query.businessId) {
|
|
|
+ formOption.readonly = true;
|
|
|
+ formOption.hiddenSubmitBtn = true;
|
|
|
+
|
|
|
+ let businessId = route.query.businessId;
|
|
|
+ proxy.post("/subscribe/detail", { id: businessId }).then((res) => {
|
|
|
+ formData.data = res.data;
|
|
|
+ });
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
defineExpose({
|
|
|
handleSubmit,
|
|
|
- tabsChange
|
|
|
+ tabsChange,
|
|
|
});
|
|
|
-onMounted(() => {
|
|
|
-
|
|
|
- getDict()
|
|
|
-})
|
|
|
+onMounted(() => {});
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
-.row {
|
|
|
- display: flex;
|
|
|
- padding: 5px 15px;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- color: #999999;
|
|
|
- .title {
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
- .delete {
|
|
|
- width: 20px;
|
|
|
- cursor: pointer;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
+._title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+ margin-left: -10px;
|
|
|
+ .line {
|
|
|
+ width: 4px;
|
|
|
+ background-color: #0084ff;
|
|
|
+ height: 15px;
|
|
|
+ margin-right: 8px;
|
|
|
+ }
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|