ソースを参照

价格审批修改

xinyan 5 ヶ月 前
コミット
77c1d4e1ac

+ 1 - 0
src/stores/countryInfo.ts

@@ -25,6 +25,7 @@ export const useCountryInfoStore = defineStore('countryInfo', () => {
 		{ name: '葡萄牙', code: 'PT', color: '#006600' }, // 绿色
 		{ name: '泰国', code: 'TH', color: '#A51931' }, // 红色
 		{ name: '新加坡', code: 'SG', color: '#ED2939' }, // 红色
+		{ name: '欧洲', code: 'EU', color: '#694b93' }, // 红色
 	];
 
 	const Region = [

+ 8 - 8
src/views/customers-voice/Columns.ts

@@ -6,14 +6,14 @@ export const CustomerVoiceColumns = [
 	// { field: 'asin', title: '标题asin', minWidth: 'auto', align: 'center', showOverflow: true,  },
 	{ field: 'product_info', title: '产品信息', width: 280, align: 'center', slots: { default: 'product_info' } },
 	{ field: 'sku', title: 'SKU', minWidth: 'auto', align: 'center', showOverflow: true },
-	{
-		field: 'country_code',
-		title: '国家',
-		minWidth: 'auto',
-		align: 'center',
-		showOverflow: true,
-		slots: { default: 'country_code' },
-	},
+	// {
+	// 	field: 'country_code',
+	// 	title: '国家',
+	// 	minWidth: 'auto',
+	// 	align: 'center',
+	// 	showOverflow: true,
+	// 	slots: { default: 'country_code' },
+	// },
 	{ field: 'fulfillment_channel', title: '渠道', minWidth: 'auto', align: 'center', showOverflow: true },
 	{
 		field: 'ncx_rate',

+ 1 - 2
src/views/customers-voice/components/DataTableSlot.vue

@@ -36,8 +36,7 @@ const ncx_rate = computed(() => {
 	if (row.ncx_count != null &&
 		row.order_count != null &&
 		row.order_count > 0) {
-		return (row.ncx_count / row.order_count) * 100;
-
+		return ((row.ncx_count / row.order_count) * 100).toFixed(2);
 	}
 	return null; // 或者返回其他占位符
 });

+ 1 - 1
src/views/customers-voice/components/show-detail/components/DataDisplay.vue

@@ -159,7 +159,7 @@ onMounted(() => {
 			<!-- 评价评论 -->
 			<el-col :span="8">
 				<div class="title">
-					<div class="font-semibold italic mb-2">评价评论</div>
+					<div class="font-semibold italic mb-2">买家差评</div>
 					<vxe-grid :cell-style="cellStyle" v-bind="reviewGridOptions">
 						<template #empty>
 							<el-empty description="暂无数据" />

+ 35 - 28
src/views/customers-voice/components/show-detail/components/TitleCard.vue

@@ -5,6 +5,7 @@
  * @Author: xinyan
  */
 import { useCountryInfoStore } from '/@/stores/countryInfo';
+import dayjs from 'dayjs';
 
 const props: any = defineProps({
 	rowData: Object,
@@ -19,13 +20,10 @@ const url = computed(() => {
 });
 
 const ncx_rate = computed(() => {
-	if (rowData.ncx_count != null &&
-		rowData.order_count != null &&
-		rowData.order_count > 0) {
+	if (rowData.ncx_count != null && rowData.order_count != null && rowData.order_count > 0) {
 		return ((rowData.ncx_count / rowData.order_count) * 100).toFixed(2);
 	}
 });
-
 </script>
 
 <template>
@@ -61,8 +59,8 @@ const ncx_rate = computed(() => {
 						</el-link>
 					</el-col>
 				</el-row>
-				<div class="mt-2">
-					<el-row>
+				<div class="mt-2" >
+					<el-row class="d-flex align-items-center">
 						<el-col :span="6">
 							<div class="font-semibold italic">ASIN : {{ rowData.asin || '-' }}</div>
 						</el-col>
@@ -79,34 +77,35 @@ const ncx_rate = computed(() => {
 							<div class="font-semibold italic">NCX订单 : {{ rowData.ncx_count || '-' }}</div>
 						</el-col>
 						<el-col :span="3">
-							<div class="font-semibold italic">NCX率 : {{ ncx_rate?ncx_rate+'%':'-' }}</div>
+							<div class="font-semibold italic">NCX率 : {{ ncx_rate ? ncx_rate + '%' : '-' }}</div>
 						</el-col>
 						<el-col :span="3">
 							<div class="font-semibold italic">退货率 : {{ (rowData.return_record_rate * 100).toFixed(2) + '%' || '-' }}</div>
 						</el-col>
-						<el-col :span="6">
-							<div class="font-semibold italic">最近更新 : {{ rowData.last_updated_date || '-' }}</div>
+						<el-col :span="4">
+							<div class="font-semibold italic">
+								最近更新 :
+								{{ dayjs(rowData.last_updated_date).format('YYYY-MM-DD') || '-' }}
+							</div>
 						</el-col>
 						<el-col :span="6">
-							<div>
-								<template v-if="rowData.all_score !== null && rowData.all_score !== undefined && rowData.all_score !== ''">
-									<el-tooltip v-if="rowData.all_score > 0" :content="rowData.all_score" effect="dark" placement="top" show-after="350">
-										<div class="flex items-center">
-											<div class="font-semibold italic">星级 :</div>
-											<el-rate
-												v-if="rowData.all_score > 0"
-												v-model="rowData.all_score"
-												:colors="['#FF0000', '#FF9900', '#67C23A']"
-												disabled
-												text-color="#1e293b"
-											/>
-										</div>
-									</el-tooltip>
-									<span v-else>{{ rowData.all_score }}</span>
-								</template>
-								<template v-else>
+							<div class="flex">
+								<el-tooltip v-if="rowData.all_score > 0" :content="rowData.all_score" effect="dark" placement="top" show-after="350">
+									<div class="flex items-center">
+										<div class="font-semibold italic">星级 :</div>
+										<el-rate
+											v-if="rowData.all_score > 0"
+											v-model="rowData.all_score"
+											:colors="['#FF0000', '#FF9900', '#67C23A']"
+											disabled
+											text-color="#1e293b"
+										/>
+									</div>
+								</el-tooltip>
+								<span v-else>{{ rowData.all_score }}</span>
+								<div v-else>
 									<span>-</span>
-								</template>
+								</div>
 							</div>
 						</el-col>
 					</el-row>
@@ -117,4 +116,12 @@ const ncx_rate = computed(() => {
 	</el-card>
 </template>
 
-<style scoped></style>
+<style scoped>
+.d-flex {
+	display: flex;
+}
+
+.align-items-center {
+	align-items: center; /* 垂直居中对齐 */
+}
+</style>

+ 6 - 4
src/views/price-approval/cost-detail/component/CreateDialog.vue

@@ -61,7 +61,7 @@ const validateRate = (rule, value, callback) => {
 
 const rules = reactive<FormRules<RuleForm>>({
 	description: [{ required: true, message: '请输入描述', trigger: 'blur' }],
-	station: [{ required: true, message: '请选择地区', trigger: 'change' }],
+	station: [{ required: true, message: '请输入地区', trigger: 'blur' }],
 	platform: [{ required: true, message: '请输入平台', trigger: 'blur' }],
 	export_tax_rate: [{ required: true, message: '请输入出口报关费率', trigger: 'blur' },
 		{ validator: validateRate, trigger: 'blur' }
@@ -140,9 +140,11 @@ const resetForm = (formEl: FormInstance | undefined) => {
 						<el-input v-model="ruleForm.description" placeholder="请输入描述" />
 					</el-form-item>
 					<el-form-item class="font-medium" label="地 区" prop="station">
-						<el-select v-model="ruleForm.station" placeholder="请选择地区">
-							<el-option v-for="item in stationOptions" :key="item" :label="item" :value="item" />
-						</el-select>
+						<!--<el-select v-model="ruleForm.station" placeholder="请选择地区">-->
+						<!--	<el-option v-for="item in stationOptions" :key="item" :label="item" :value="item" />-->
+						<!--</el-select>-->
+						<el-input v-model="ruleForm.station" placeholder="请输入地区"/>
+
 					</el-form-item>
 					<el-form-item class="font-medium" label="进口关税率" prop="import_tax_rate">
 						<el-input v-model="ruleForm.import_tax_rate" placeholder="请输入进口关税率"></el-input>

+ 1 - 0
src/views/price-approval/cost-detail/component/DataTable.vue

@@ -174,6 +174,7 @@ const gridEvents = {
 
 function cellStyle() {
 	return {
+		// color: '#333',
 		fontWeight: 600,
 	};
 }

+ 1 - 1
src/views/price-approval/cost-detail/component/DataTableSlot.vue

@@ -28,7 +28,7 @@ function onConfirm() {
 </script>
 
 <template>
-	<div class="font-medium">
+	<div class="font-semibold">
 		<div v-if="field === 'operate'">
 			<div class="flex justify-center gap-2">
 				<div v-if="hasPermission('SkuAttrUpdate')">

+ 5 - 4
src/views/price-approval/cost-detail/component/EditDrawer.vue

@@ -68,7 +68,7 @@ const validateRate = (rule, value, callback) => {
 
 const rules = reactive<FormRules<RuleForm>>({
 	description: [{ required: true, message: '请输入描述', trigger: 'blur' }],
-	station: [{ required: true, message: '请选择地区', trigger: 'change' }],
+	station: [{ required: true, message: '请输入地区', trigger: 'blur' }],
 	platform: [{ required: true, message: '请输入平台', trigger: 'blur' }],
 	export_tax_rate: [{ required: true, message: '请输入出口报关费率', trigger: 'blur' },
 		{ validator: validateRate, trigger: 'blur' }
@@ -132,9 +132,10 @@ function closeDrawer() {
 							<el-input v-model="ruleForm.description" placeholder="请输入描述" />
 						</el-form-item>
 						<el-form-item class="font-medium" label="地 区" prop="station">
-							<el-select v-model="ruleForm.station" placeholder="请选择地区">
-								<el-option v-for="item in stationOptions" :key="item" :label="item" :value="item" />
-							</el-select>
+							<!--<el-select v-model="ruleForm.station" placeholder="请选择地区">-->
+							<!--	<el-option v-for="item in stationOptions" :key="item" :label="item" :value="item" />-->
+							<!--</el-select>-->
+							<el-input v-model="ruleForm.station" placeholder="请输入地区"/>
 						</el-form-item>
 						<el-form-item class="font-medium" label="进口关税率" prop="import_tax_rate">
 							<el-input v-model="ruleForm.import_tax_rate" placeholder="请输入进口关税率"></el-input>