From adeb8b768926ed50a3fb0857f366d6a0308d2cc0 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 29 八月 2025 17:45:57 +0800 Subject: [PATCH] 修改组件 --- src/pages/sales/salesAccount/detail.vue | 567 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 374 insertions(+), 193 deletions(-) diff --git a/src/pages/sales/salesAccount/detail.vue b/src/pages/sales/salesAccount/detail.vue index bca5e36..0260179 100644 --- a/src/pages/sales/salesAccount/detail.vue +++ b/src/pages/sales/salesAccount/detail.vue @@ -4,80 +4,104 @@ <PageHeader title="鍙拌处璇︽儏" @back="goBack" /> <!-- 琛ㄥ崟鍖哄煙 --> - <van-form @submit="onSubmit" label-width="110px" input-align="right" style="margin-top: 10px" error-message-align="right" scroll-to-error scroll-to-error-position="center"> - <van-field label="閿�鍞悎鍚屽彿" name="salesContractNo" borderBottom="true" v-model="form.salesContractNo" placeholder="鑷姩鐢熸垚" disabled> - </van-field> - <van-field - v-model="form.salesman" - is-link - readonly - name="salesman" + <u-form @submit="onSubmit" label-width="110" input-align="right" style="margin-top: 10px" error-message-align="right"> + <u-form-item label="閿�鍞悎鍚屽彿" prop="salesContractNo" border-bottom> + <u-input v-model="form.salesContractNo" placeholder="鑷姩鐢熸垚" disabled /> + </u-form-item> + <u-form-item label="涓氬姟鍛�" + prop="salesman" required - placeholder="鐐瑰嚮閫夋嫨涓氬姟鍛�" - :rules="[{ required: true, message: '璇烽�夋嫨涓氬姟鍛�' }]" - @click="showPicker = true" - /> - <van-field label="瀹㈡埛鍚堝悓鍙�" name="customerContractNo" borderBottom="true" - v-model="form.customerContractNo" required - placeholder="璇疯緭鍏ュ鎴峰悎鍚屽彿" :rules="[{ required: true, message: '瀹㈡埛鍚堝悓鍙蜂笉鑳戒负绌�' }]"> - </van-field> - <van-field - v-model="form.customerName" - is-link - readonly - required - name="customerName" + border-bottom + > + <u-input + v-model="form.salesman" + readonly + placeholder="鐐瑰嚮閫夋嫨涓氬姟鍛�" + @click="showPicker = true" + /> + </u-form-item> + <u-form-item label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" required border-bottom> + <u-input + v-model="form.customerContractNo" + placeholder="璇疯緭鍏ュ鎴峰悎鍚屽彿" + /> + </u-form-item> + <u-form-item label="瀹㈡埛鍚嶇О" - placeholder="鐐瑰嚮閫夋嫨瀹㈡埛" - :rules="[{ required: true, message: '璇烽�夋嫨瀹㈡埛' }]" - @click="showCustomerPicker = true" - /> - <van-field label="椤圭洰鍚嶇О" name="projectName" borderBottom="true" v-model="form.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" :rules="[{ required: true, message: '椤圭洰鍚嶇О涓嶈兘涓虹┖' }]" required> - </van-field> - <van-field - v-model="form.executionDate" - is-link - readonly + prop="customerName" required - name="executionDate" + border-bottom + > + <u-input + v-model="form.customerName" + readonly + placeholder="鐐瑰嚮閫夋嫨瀹㈡埛" + @click="showCustomerPicker = true" + /> + </u-form-item> + <u-form-item label="椤圭洰鍚嶇О" prop="projectName" required border-bottom> + <u-input v-model="form.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" /> + </u-form-item> + <u-form-item label="绛捐鏃ユ湡" - placeholder="鐐瑰嚮閫夋嫨鏃堕棿" - :rules="[{ required: true, message: '绛捐鏃ユ湡涓嶈兘涓虹┖' }]" - @click="showDatePicker = true" - /> - <van-popup v-model:show="showDatePicker" destroy-on-close position="bottom"> - <van-date-picker + prop="executionDate" + required + border-bottom + > + <u-input + v-model="form.executionDate" + readonly + placeholder="鐐瑰嚮閫夋嫨鏃堕棿" + @click="showDatePicker = true" + /> + </u-form-item> + <u-popup v-model="showDatePicker" mode="bottom"> + <u-datetime-picker v-model="pickerDateValue" @confirm="onDateConfirm" @cancel="showDatePicker = false" /> - </van-popup> - <van-field label="浠樻鏂瑰紡" name="paymentMethod" borderBottom="true" v-model="form.paymentMethod" placeholder="璇疯緭鍏ヤ粯娆炬柟寮�"> - </van-field> - <van-field label="褰曞叆浜�" name="entryPersonName" borderBottom="true" v-model="form.entryPersonName" placeholder="璇疯緭鍏�" disabled> - </van-field> - <van-field label="褰曞叆鏃ユ湡" name="entryDate" borderBottom="true" v-model="form.entryDate" placeholder="璇疯緭鍏�" disabled> - </van-field> - <van-popup v-model:show="showPicker" destroy-on-close position="bottom"> - <van-picker + </u-popup> + <u-form-item label="浠樻鏂瑰紡" prop="paymentMethod" border-bottom> + <u-input v-model="form.paymentMethod" placeholder="璇疯緭鍏ヤ粯娆炬柟寮�" /> + </u-form-item> + <u-form-item label="褰曞叆浜�" prop="entryPersonName" border-bottom> + <u-input v-model="form.entryPersonName" placeholder="璇疯緭鍏�" disabled /> + </u-form-item> + <u-form-item label="褰曞叆鏃ユ湡" prop="entryDate" border-bottom> + <u-input v-model="form.entryDate" placeholder="璇疯緭鍏�" disabled /> + </u-form-item> + <!-- 涓氬姟鍛橀�夋嫨寮圭獥 --> + <u-popup v-model="showPicker" mode="bottom"> + <view class="picker-header"> + <view class="picker-cancel" @click="showPicker = false">鍙栨秷</view> + <view class="picker-title">閫夋嫨涓氬姟鍛�</view> + <view class="picker-confirm" @click="confirmSalesman">纭畾</view> + </view> + <u-picker :columns="userList" v-model="pickerValue" - @confirm="onConfirm" - @cancel="showPicker = false" + @change="onPickerChange" /> - </van-popup> - <van-popup v-model:show="showCustomerPicker" destroy-on-close position="bottom"> - <van-picker + </u-popup> + + <!-- 瀹㈡埛閫夋嫨寮圭獥 --> + <u-popup v-model="showCustomerPicker" mode="bottom"> + <view class="picker-header"> + <view class="picker-cancel" @click="showCustomerPicker = false">鍙栨秷</view> + <view class="picker-title">閫夋嫨瀹㈡埛</view> + <view class="picker-confirm" @click="confirmCustomer">纭畾</view> + </view> + <u-picker :columns="customerOption" v-model="pickerCustomerValue" - @confirm="onCustomerConfirm" - @cancel="showCustomerPicker = false" + @change="onCustomerPickerChange" /> - </van-popup> + </u-popup> <!-- 浜у搧澶х被閫夋嫨鍣� --> - <van-popup v-model:show="showCategoryPicker" destroy-on-close position="bottom"> + <u-popup v-model="showCategoryPicker" mode="bottom"> <!-- 澶撮儴鎸夐挳鍖哄煙 --> <view class="popup-header"> <view @click="showCategoryPicker = false" class="cancelButton">鍙栨秷</view> @@ -91,175 +115,209 @@ check-strictly @check-change="onCategoryConfirm" /> - </van-popup> + </u-popup> <!-- 瑙勬牸鍨嬪彿閫夋嫨鍣� --> - <van-popup v-model:show="showSpecificationPicker" destroy-on-close position="bottom"> - <van-picker + <u-popup v-model="showSpecificationPicker" mode="bottom"> + <u-picker :columns="modelOptions" v-model="pickerSpecificationValue" @confirm="onSpecificationConfirm" @cancel="showSpecificationPicker = false" /> - </van-popup> + </u-popup> <!-- 绋庣巼閫夋嫨鍣� --> - <van-popup v-model:show="showTaxRatePicker" destroy-on-close position="bottom"> - <van-picker + <u-popup v-model="showTaxRatePicker" mode="bottom"> + <u-picker :columns="taxRateOptions" v-model="pickerTaxRateValue" @confirm="onTaxRateConfirm" @cancel="showTaxRatePicker = false" /> - </van-popup> + </u-popup> <!-- 鍙戠エ绫诲瀷閫夋嫨鍣� --> - <van-popup v-model:show="showInvoiceTypePicker" destroy-on-close position="bottom"> - <van-picker + <u-popup v-model="showInvoiceTypePicker" mode="bottom"> + <u-picker :columns="invoiceTypeOptions" v-model="pickerInvoiceTypeValue" @confirm="onInvoiceTypeConfirm" @cancel="showInvoiceTypePicker = false" /> - </van-popup> + </u-popup> <!-- 浜у搧淇℃伅 --> <view class="product-section"> <view class="section-header"> <text class="section-title">浜у搧淇℃伅</text> - <van-button type="primary" size="small" @click="addProduct" class="add-btn" icon="plus" v-if="operationType !== 'view'">鏂板</van-button> + <u-button type="primary" size="small" @click="addProduct" class="add-btn" v-if="operationType !== 'view'"> + <u-icon name="plus" size="14" /> + 鏂板 + </u-button> </view> <view class="product-card" v-for="(product, idx) in productData" :key="idx"> <!-- 浜у搧绫� --> <view class="product-header"> <view class="product-title"> - <van-icon name="description" color="#2979ff" size="15" /> + <u-icon name="file-text" color="#2979ff" size="15" /> <text class="product-productCategory">浜у搧 {{ idx + 1 }}</text> </view> <!-- 鎿嶄綔鎸夐挳 --> - <view class="product-actions" v-if="operationType !== 'view'"> - <van-button type="danger" size="mini" @click="removeProduct(idx)" class="del-btn" icon="delete">鍒犻櫎</van-button> + <view class="product-actions" v-if="operationType !== 'view'"> + <u-button type="error" size="mini" @click="removeProduct(idx)" class="del-btn"> + <u-icon name="trash" size="12" /> + 鍒犻櫎 + </u-button> </view> </view> <!-- 浜у搧淇℃伅琛ㄥ崟 --> <view class="product-form"> <!-- 浜у搧澶х被 --> - <van-field - v-model="product.productCategory" - is-link - readonly - name="productCategory" + <u-form-item label="浜у搧澶х被" + prop="productCategory" required - placeholder="璇烽�夋嫨" - :rules="[{ required: true, message: '璇烽�夋嫨' }]" - @click="openCategoryPicker(idx)" - /> + border-bottom + > + <u-input + v-model="product.productCategory" + readonly + placeholder="璇烽�夋嫨" + @click="openCategoryPicker(idx)" + /> + </u-form-item> <!-- 瑙勬牸鍨嬪彿 --> - <van-field - v-model="product.specificationModel" - is-link - readonly - name="specificationModel" + <u-form-item label="瑙勬牸鍨嬪彿" + prop="specificationModel" required - :rules="[{ required: true, message: '璇烽�夋嫨' }]" - placeholder="璇烽�夋嫨" - @click="openSpecificationPicker(idx)" - /> + border-bottom + > + <u-input + v-model="product.specificationModel" + readonly + placeholder="璇烽�夋嫨" + @click="openSpecificationPicker(idx)" + /> + </u-form-item> <!-- 鍗曚綅 --> - <van-field - v-model="product.unit" - name="unit" + <u-form-item label="鍗曚綅" + prop="unit" required - :rules="[{ required: true, message: '璇疯緭鍏�' }]" - placeholder="璇疯緭鍏�" - /> + border-bottom + > + <u-input + v-model="product.unit" + placeholder="璇疯緭鍏�" + /> + </u-form-item> <!-- 绋庣巼 --> - <van-field - v-model="product.taxRate" - is-link - readonly - name="taxRate" + <u-form-item label="绋庣巼(%)" + prop="taxRate" required - :rules="[{ required: true, message: '璇烽�夋嫨' }]" - placeholder="璇烽�夋嫨" - @click="openTaxRatePicker(idx)" - /> + border-bottom + > + <u-input + v-model="product.taxRate" + readonly + placeholder="璇烽�夋嫨" + @click="openTaxRatePicker(idx)" + /> + </u-form-item> <!-- 鍚◣鍗曚环 --> - <van-field - v-model="product.taxInclusiveUnitPrice" - name="taxInclusiveUnitPrice" + <u-form-item label="鍚◣鍗曚环(鍏�)" - type="number" + prop="taxInclusiveUnitPrice" required - :rules="[{ required: true, message: '璇疯緭鍏�' }]" - placeholder="璇疯緭鍏�" - @blur="formatTaxPrice(idx)" - /> + border-bottom + > + <u-input + v-model="product.taxInclusiveUnitPrice" + type="number" + placeholder="璇疯緭鍏�" + @blur="formatTaxPrice(idx)" + /> + </u-form-item> <!-- 鏁伴噺 --> - <van-field - v-model="product.quantity" - name="quantity" + <u-form-item label="鏁伴噺" - type="number" - :rules="[{ required: true, message: '璇疯緭鍏�' }]" + prop="quantity" required - placeholder="璇疯緭鍏�" - @blur="formatAmount(idx)" - /> + border-bottom + > + <u-input + v-model="product.quantity" + type="number" + placeholder="璇疯緭鍏�" + @blur="formatAmount(idx)" + /> + </u-form-item> <!-- 鍚◣鎬讳环 --> - <van-field - v-model="product.taxInclusiveTotalPrice" - name="taxInclusiveTotalPrice" + <u-form-item label="鍚◣鎬讳环(鍏�)" - type="number" - :rules="[{ required: true, message: '璇疯緭鍏�' }]" + prop="taxInclusiveTotalPrice" required - placeholder="璇疯緭鍏�" - @blur="formatTaxTotal(idx)" - /> + border-bottom + > + <u-input + v-model="product.taxInclusiveTotalPrice" + type="number" + placeholder="璇疯緭鍏�" + @blur="formatTaxTotal(idx)" + /> + </u-form-item> <!-- 涓嶅惈绋庢�讳环 --> - <van-field - v-model="product.taxExclusiveTotalPrice" - name="taxExclusiveTotalPrice" + <u-form-item label="涓嶅惈绋庢�讳环(鍏�)" - type="number" + prop="taxExclusiveTotalPrice" required - :rules="[{ required: true, message: '璇疯緭鍏�' }]" - placeholder="璇疯緭鍏�" - @blur="formatNoTaxTotal(idx)" - /> + border-bottom + > + <u-input + v-model="product.taxExclusiveTotalPrice" + type="number" + placeholder="璇疯緭鍏�" + @blur="formatNoTaxTotal(idx)" + /> + </u-form-item> <!-- 鍙戠エ绫诲瀷 --> - <van-field - v-model="product.invoiceType" - is-link - readonly - name="invoiceType" + <u-form-item label="鍙戠エ绫诲瀷" - :rules="[{ required: true, message: '璇烽�夋嫨' }]" + prop="invoiceType" required - placeholder="璇烽�夋嫨" - @click="openInvoiceTypePicker(idx)" - /> + border-bottom + > + <u-input + v-model="product.invoiceType" + readonly + placeholder="璇烽�夋嫨" + @click="openInvoiceTypePicker(idx)" + /> + </u-form-item> </view> </view> </view> - <view class="footer-btns" v-if="operationType !== 'view'"> - <van-button class="cancel-btn" @click="goBack">鍙栨秷</van-button> - <van-button class="save-btn" native-type="submit" form-type="submit">淇濆瓨</van-button> - </view> - </van-form> + </u-form> + + <!-- 浣跨敤鍏叡搴曢儴鎸夐挳缁勪欢 --> + <FooterButtons + :show="operationType !== 'view'" + cancelText="鍙栨秷" + confirmText="淇濆瓨" + @cancel="goBack" + @confirm="onSubmit" + /> </view> </template> @@ -276,6 +334,8 @@ } from "@/api/salesManagement/salesLedger"; import useUserStore from "@/store/modules/user"; import {calculateTaxExclusiveTotalPrice} from "@/utils/summarizeTable"; +import PageHeader from '@/components/PageHeader.vue'; +import FooterButtons from '@/components/FooterButtons.vue'; // 鑾峰彇椤甸潰鍙傛暟 const operationType = ref(''); @@ -314,6 +374,12 @@ const pickerSpecificationValue = ref(['']); const pickerTaxRateValue = ref(['']); const pickerInvoiceTypeValue = ref(['']); + +// 涓存椂瀛樺偍閫夋嫨鍣ㄩ�変腑鐨勫�� +const tempSalesmanValue = ref(''); +const tempCustomerValue = ref(''); +const selectedSalesman = ref(null); +const selectedCustomer = ref(null); const currentProductIndex = ref(0); // 閫夐」鏁版嵁 @@ -356,15 +422,58 @@ invoiceType: '' }); }; -const onConfirm = ({ selectedValues, selectedOptions }) => { - form.value.salesman = selectedOptions[0]?.text; - pickerValue.value = [selectedValues[0]]; +// 涓氬姟鍛橀�夋嫨鍣ㄥ彉鍖栦簨浠� +const onPickerChange = ({ selectedValues, selectedOptions }) => { + selectedSalesman.value = selectedOptions[0]; + tempSalesmanValue.value = { + text: selectedOptions[0]?.text, + value: selectedOptions[0]?.value + }; +}; + +// 纭閫夋嫨涓氬姟鍛� +const confirmSalesman = () => { + if (selectedSalesman.value) { + form.value.salesman = selectedSalesman.value.text; + pickerValue.value = [selectedSalesman.value.value]; + } showPicker.value = false; }; + +// 瀹㈡埛閫夋嫨鍣ㄥ彉鍖栦簨浠� +const onCustomerPickerChange = ({ selectedValues, selectedOptions }) => { + selectedCustomer.value = selectedOptions[0]; + tempCustomerValue.value = { + text: selectedOptions[0]?.text, + value: selectedOptions[0]?.value + }; +}; + +// 纭閫夋嫨瀹㈡埛 +const confirmCustomer = () => { + if (selectedCustomer.value) { + form.value.customerName = selectedCustomer.value.text; + form.value.customerId = selectedCustomer.value.value; + pickerCustomerValue.value = [selectedCustomer.value.value]; + } + showCustomerPicker.value = false; +}; + +// 淇敼鍘熸湁鐨勭‘璁ゆ柟娉曪紙淇濇寔鍏煎鎬э級 +const onConfirm = ({ selectedValues, selectedOptions }) => { + if (selectedOptions && selectedOptions[0]) { + form.value.salesman = selectedOptions[0].text; + pickerValue.value = [selectedValues[0]]; + } + showPicker.value = false; +}; + const onCustomerConfirm = ({ selectedValues, selectedOptions }) => { - form.value.customerName = selectedOptions[0]?.text; - form.value.customerId = selectedOptions[0]?.value; - pickerCustomerValue.value = [selectedValues[0]]; + if (selectedOptions && selectedOptions[0]) { + form.value.customerName = selectedOptions[0].text; + form.value.customerId = selectedOptions[0].value; + pickerCustomerValue.value = [selectedValues[0]]; + } showCustomerPicker.value = false; }; const onDateConfirm = ({ selectedValues }) => { @@ -664,20 +773,20 @@ }; const getUserList = () => { userListNoPage().then((res) => { - // 灏嗙敤鎴锋暟鎹粍瑁呮垚 picker 闇�瑕佺殑鏍煎紡 - userList.value = res.data.map(user => ({ + // 纭繚鏁版嵁鏍煎紡姝g‘ + userList.value = [res.data.map(user => ({ text: user.nickName, value: user.nickName - })); + }))]; }) } const getCustomerList = () => { customerList().then((res) => { - // 灏嗙敤鎴锋暟鎹粍瑁呮垚 picker 闇�瑕佺殑鏍煎紡 - customerOption.value = res.map(item => ({ + // 纭繚鏁版嵁鏍煎紡姝g‘ + customerOption.value = [res.map(item => ({ text: item.customerName, value: item.id - })); + }))]; }) } const convertIdToValue = (data) => { @@ -745,6 +854,7 @@ background: #f8f9fa; padding-bottom: 5rem; } + .header { display: flex; align-items: center; @@ -757,6 +867,7 @@ /* 鍏煎 iOS 鍒樻捣/鐏靛姩宀涘畨鍏ㄥ尯 */ padding-top: env(safe-area-inset-top); } + .title { flex: 1; text-align: center; @@ -764,6 +875,7 @@ font-weight: 600; color: #333; } + .form-section { margin-top: 1rem; } @@ -779,17 +891,20 @@ padding: 1rem; box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,0.04); } + .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; } + .section-title { font-size: 1rem; font-weight: 600; color: #333; } + .product-card { background: #FFFFFF; box-shadow: 0 0 1.25rem 0 rgba(0,57,117,0.08); @@ -797,6 +912,7 @@ padding: 1rem 0.5rem 0 0.5rem; position: relative; } + .product-header { display: flex; align-items: center; @@ -804,70 +920,46 @@ padding: 0 0.5rem 0.75rem 0.5rem; border-bottom: 0.0625rem solid #e8e8e8; } + .product-productCategory { margin-left: 0.5rem; font-size: 0.875rem; font-weight: 500; color: #333; } + .info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 1rem; } + .info-item { display: flex; flex-direction: column; gap: 0.25rem; } + .info-label { font-size: 0.75rem; color: #666; font-weight: 400; } + .info-value { font-size: 0.875rem; color: #333; font-weight: 500; } + .info-value.highlight { color: #2979ff; font-weight: 600; } + .product-form { margin-bottom: 1rem; -} -.footer-btns { - position: fixed; - left: 0; - right: 0; - bottom: 0; - background: #fff; - display: flex; - justify-content: space-around; - align-items: center; - padding: 0.75rem 0; - box-shadow: 0 -0.125rem 0.5rem rgba(0,0,0,0.05); - z-index: 1000; -} -.cancel-btn { - font-weight: 400; - font-size: 1rem; - color: #FFFFFF; - width: 6.375rem; - background: #C7C9CC; - box-shadow: 0 0.25rem 0.625rem 0 rgba(3,88,185,0.2); - border-radius: 2.5rem 2.5rem 2.5rem 2.5rem; -} -.save-btn { - font-weight: 400; - font-size: 1rem; - color: #FFFFFF; - width: 14rem; - background: linear-gradient( 140deg, #00BAFF 0%, #006CFB 100%); - box-shadow: 0 0.25rem 0.625rem 0 rgba(3,88,185,0.2); - border-radius: 2.5rem 2.5rem 2.5rem 2.5rem; } .popup-header { @@ -880,13 +972,102 @@ top: 0; z-index: 10; } + .cancelButton { color: #969799 } + .confirmButton { color: #1989FA } + .u-tree { height: 13rem; } + +/* 绉婚櫎 input 杈规鐨勬牱寮� */ +:deep(.u-input) { + border: none !important; + box-shadow: none !important; + background: transparent !important; +} + +:deep(.u-input__content) { + border: none !important; + box-shadow: none !important; + background: transparent !important; +} + +:deep(.u-input__content__field-wrapper) { + border: none !important; + box-shadow: none !important; + background: transparent !important; +} + +:deep(.u-input__content__field-wrapper__field) { + border: none !important; + box-shadow: none !important; + background: transparent !important; + outline: none !important; +} + +/* 绉婚櫎 textarea 杈规鐨勬牱寮� */ +:deep(.u-textarea) { + border: none !important; + box-shadow: none !important; + background: transparent !important; +} + +:deep(.u-textarea__content) { + border: none !important; + box-shadow: none !important; + background: transparent !important; +} + +:deep(.u-textarea__content__field) { + border: none !important; + box-shadow: none !important; + background: transparent !important; + outline: none !important; +} + +/* 绉婚櫎 form-item 鐨勮竟妗� */ +:deep(.u-form-item) { + border: none !important; +} + +:deep(.u-form-item__body) { + border: none !important; +} + +/* 淇濇寔鍒嗗壊绾挎牱寮� */ +:deep(.u-form-item--border-bottom) { + border-bottom: 1px solid #ebeef5 !important; +} + +/* 閫夋嫨鍣ㄥご閮ㄦ牱寮� */ +.picker-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 15px 20px; + background: #fff; + border-bottom: 1px solid #ebeef5; +} + +.picker-cancel { + color: #909399; + font-size: 16px; +} + +.picker-title { + color: #303133; + font-size: 16px; + font-weight: 500; +} + +.picker-confirm { + color: #2979ff; + font-size: 16px; +} </style> -- Gitblit v1.9.3