888
This commit is contained in:
parent
cf81f2265e
commit
271c9beb73
|
@ -0,0 +1,2 @@
|
||||||
|
import request from '@axioshooks'
|
||||||
|
|
|
@ -7,19 +7,11 @@ export function select_by_conditions(data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 编辑商品(查询)
|
|
||||||
export function get_commodity_id(data) {
|
|
||||||
return request({
|
|
||||||
url: `xy_openapi/commodity_info/get_commodity_id/${data}`,
|
|
||||||
method: 'get',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 编辑商品
|
// 编辑商品
|
||||||
export function edit_product(data) {
|
export function edit_product(data) {
|
||||||
return request({
|
return request({
|
||||||
url: `xy_openapi/commodity_info/edit_product`,
|
url: `xy_openapi/commodity_info/edit_product/${data}`,
|
||||||
method: 'put',
|
method: 'get',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
/*
|
|
||||||
* @Author: your name
|
|
||||||
* @Date: 2021-06-15 15:51:08
|
|
||||||
* @LastEditTime: 2021-06-15 16:28:45
|
|
||||||
* @LastEditors: Please set LastEditors
|
|
||||||
* @Description: In User Settings Edit
|
|
||||||
* @FilePath: \aiguo_erp_vue\src\api\configuration.js
|
|
||||||
*/
|
|
||||||
import request from '@axioshooks';
|
|
||||||
// 配件分类列表
|
|
||||||
export function cancel_draw_money(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/cancel_draw_money',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 商户列表
|
|
||||||
export function service_provider_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/service_provider_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 编辑增加用户
|
|
||||||
export function service_provider_edit(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/service_provider_edit',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取爱果服务费
|
|
||||||
export function get_ag_service(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/get_ag_service',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//搜索账号
|
|
||||||
export function search_account(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/search_account',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//批量开启免检
|
|
||||||
export function batch_start_exemption(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/batch_start_exemption',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//批量关闭免检
|
|
||||||
export function batch_stop_exemption(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/batch_stop_exemption',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//批量关闭免检
|
|
||||||
export function get_search_company(data) {
|
|
||||||
return request({
|
|
||||||
url: 'payment/company_id_search',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
import request from '@axioshooks';
|
|
||||||
|
|
||||||
//站点运营数据统计
|
|
||||||
export function site_operation_data_statistics(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/site_operation_data_statistics',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//站点运营数据详情
|
|
||||||
export function site_operation_data_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/site_operation_data_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//闲鱼账号
|
|
||||||
export function get_site_account(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_site_account',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//服务商列表
|
|
||||||
export function service_provider_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/service_provider_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import request from '@axioshooks'
|
||||||
|
// 获取订单管理列表
|
||||||
|
export function order_info(data) {
|
||||||
|
return request({
|
||||||
|
url: 'xy_openapi/api/order_info/select_by_conditions',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
|
@ -1,611 +0,0 @@
|
||||||
import request from '@axioshooks'
|
|
||||||
/*客户数据*/
|
|
||||||
export function Warehousing(data) {
|
|
||||||
return request({
|
|
||||||
url: 'customer/get_datas',
|
|
||||||
method: 'get',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*业务员下拉框数据*/
|
|
||||||
export function salesman(data) {
|
|
||||||
return request({
|
|
||||||
url: 'salesman/get_datas',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*机器列表品牌*/
|
|
||||||
export function filter_brand_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'brand/filter_brand_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*品牌*/
|
|
||||||
export function get_datas(data) {
|
|
||||||
return request({
|
|
||||||
url: 'brand/get_datas',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*品牌*/
|
|
||||||
export function filter_all_brand_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'brand/filter_all_brand_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*适用品牌*/
|
|
||||||
export function cate_brand_list_all(data) {
|
|
||||||
return request({
|
|
||||||
url: 'brand/cate_brand_list_all',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*手机品牌*/
|
|
||||||
export function cate_brand_list_in_stock(data) {
|
|
||||||
return request({
|
|
||||||
url: 'brand/cate_brand_list_in_stock',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*型号*/
|
|
||||||
export function model_brand(data) {
|
|
||||||
return request({
|
|
||||||
url: 'res/get_exist_model_brand',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*机器等级*/
|
|
||||||
export function machine_grade(data) {
|
|
||||||
return request({
|
|
||||||
url: 'repair/get_repair_fault_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*选择库位*/
|
|
||||||
export function location_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'location_id/location_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*机器入库*/
|
|
||||||
export function save(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/new_save',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*new机器入库*/
|
|
||||||
export function purchase(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/purchase',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*采购配件*/
|
|
||||||
export function accessories_save(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/accessories_save',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*采购配件*/
|
|
||||||
export function new_accessories_save(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/new_accessories_save',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*imei/sn图片识别*/
|
|
||||||
export function identify_sn_imei(data) {
|
|
||||||
return request({
|
|
||||||
url: 'https://apiv1.aiguovip.comquery/identify_sn_imei',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/*上传xls文件*/
|
|
||||||
export function excel_storage(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/excel_storage',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/*重置*/
|
|
||||||
export function reset(token) {
|
|
||||||
return request({
|
|
||||||
url: 'res/reset',
|
|
||||||
method: 'get',
|
|
||||||
params: { token }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*打印*/
|
|
||||||
export function pre_print() {
|
|
||||||
return request({
|
|
||||||
url: 'res/pre_print',
|
|
||||||
method: 'post'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*配件分类*/
|
|
||||||
export function get_accessories_cate_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'res/get_accessories_cate_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*操作员*/
|
|
||||||
export function op_order_operater_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/op_order_operater_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*操作类型*/
|
|
||||||
export function op_order_type_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/op_order_type_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*操作订单列表*/
|
|
||||||
export function op_order_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/op_order_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*操作订单详情*/
|
|
||||||
export function op_order_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/op_order_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*获取店铺名称*/
|
|
||||||
export function get_shop(data) {
|
|
||||||
return request({
|
|
||||||
url: 'res/get_shop',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*智能识别1*/
|
|
||||||
export function ai_model_v2(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/ai_model_v2',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*智能识别2*/
|
|
||||||
export function ai_model_update_v2(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/ai_model_update_v2',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*编辑备注*/
|
|
||||||
export function order_edit(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/order_edit',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*操作订单列表详情*/
|
|
||||||
export function op_order_pay(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/op_order_pay',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*操作订单详情--整单打印*/
|
|
||||||
export function whole_list_print(data) {
|
|
||||||
return request({
|
|
||||||
url: 'res/whole_list_print',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*批量回填价格列表*/
|
|
||||||
export function zlj_sales_rollback(data) {
|
|
||||||
return request({
|
|
||||||
url: 'sales/zlj_sales_rollback',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*批量回填价格*/
|
|
||||||
export function zlj_sales_complete(data) {
|
|
||||||
return request({
|
|
||||||
url: 'sales/zlj_sales_complete',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*回收端列表*/
|
|
||||||
export function recycle_order_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'recycle/recycle_order_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*回收端应付款列表*/
|
|
||||||
export function receivable_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'recycle/receivable_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*回收支付*/
|
|
||||||
export function recycle_pay(data) {
|
|
||||||
return request({
|
|
||||||
url: 'recycle/recycle_pay',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*回收应付款支付*/
|
|
||||||
export function charge_account_settlement(data) {
|
|
||||||
return request({
|
|
||||||
url: 'recycle/charge_account_settlement',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*回收端下的所有门店*/
|
|
||||||
export function store_user_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'recycle/store_user_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*回收详情*/
|
|
||||||
export function recycle_order_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'recycle/recycle_order_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*获取pjt物品信息*/
|
|
||||||
export function third_party_no(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/third_party_no',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*获取回收端物品信息*/
|
|
||||||
export function recycle_app(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/recycle_app',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*获取代卖列表*/
|
|
||||||
export function instead_sales(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/instead_sales',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/*获取改价中心详情列表*/
|
|
||||||
export function change_price_center(data) {
|
|
||||||
return request({
|
|
||||||
url: 'zlj/change_price_center',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 公司信息
|
|
||||||
export function get_company(data) {
|
|
||||||
return request({
|
|
||||||
url: 'user/get_company',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 订单详情-分享🐴
|
|
||||||
export function op_order_details_code(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/op_order_details_code',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 通过分享码读取详情
|
|
||||||
export function get_op_order_details_by_code(data) {
|
|
||||||
return request({
|
|
||||||
url: 'public_api/get_op_order_details_by_code',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 解绑爱果账号
|
|
||||||
export function unbundling_ag(data) {
|
|
||||||
return request({
|
|
||||||
url: 'user/unbundling_ag',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 绑定爱果账号
|
|
||||||
export function binding_ag_account(data) {
|
|
||||||
return request({
|
|
||||||
url: 'user/binding_ag_account',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取爱果账号的余额
|
|
||||||
export function get_ag_balance(data) {
|
|
||||||
return request({
|
|
||||||
url: 'user/get_ag_balance',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// aiguo接管登录
|
|
||||||
export function ag_take_over_login(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/ag_take_over_login',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 修改采购客户
|
|
||||||
export function edit_super_supplier(data) {
|
|
||||||
return request({
|
|
||||||
url: 'finance/edit_super_supplier',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 修改销售客户
|
|
||||||
export function edit_sales_customer(data) {
|
|
||||||
return request({
|
|
||||||
url: 'finance/edit_sales_customer',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 修改业务员
|
|
||||||
export function edit_salesman(data) {
|
|
||||||
return request({
|
|
||||||
url: 'finance/edit_salesman',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 查询发送
|
|
||||||
export function auto_query_for_imei(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/auto_query_for_imei',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//老获取pjt
|
|
||||||
export function third_party_no_v2(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/third_party_no_v2',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//草稿箱
|
|
||||||
export function drafts_box_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/drafts_box_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---草稿保存
|
|
||||||
export function save_drafts_box(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/save_drafts_box',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---草稿删除
|
|
||||||
export function del_drafts_box(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/del_drafts_box',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---设置是否自动查询保修
|
|
||||||
export function user_warranty_query(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/user_warranty_query',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---入库获取机器型号
|
|
||||||
export function cate_brand_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/cate_brand_list_all',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---采购单编辑机器
|
|
||||||
export function purchase_order_edit_phone(data) {
|
|
||||||
return request({
|
|
||||||
url: 'purchase_order/purchase_order_edit_phone',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---草稿箱编辑
|
|
||||||
export function edit_drafts_box(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/edit_drafts_box',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---批量添加网页版---草稿箱
|
|
||||||
export function batch_save_drafts_box(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/batch_save_drafts_box',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//---批量更新网页版---草稿箱
|
|
||||||
export function batch_edit_drafts_box(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/batch_edit_drafts_box',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//小程序入库---获取草稿箱单条数据
|
|
||||||
export function get_drafts_box(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/get_drafts_box',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//小程序入库---是否验证机器信息完整
|
|
||||||
export function mp_is_validation(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/mp_is_validation',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//小程序---新建采购单
|
|
||||||
export function mp_add_purchase(data) {
|
|
||||||
return request({
|
|
||||||
url: 'purchase_order/mp_add_purchase',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//小程序入库---立即入库
|
|
||||||
export function mp_purchase(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/mp_purchase',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//关联单据---入库单关联的采购单
|
|
||||||
export function associated(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/associated_order',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//草稿箱添加重复的机器
|
|
||||||
export function drafts_box_add_repeat(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/drafts_box_add_repeat',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//将草稿箱中的采购单机器设为实物
|
|
||||||
export function drafts_box_not_purchase(data) {
|
|
||||||
return request({
|
|
||||||
url: 'instorage/drafts_box_not_purchase',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//正在查询的机器可以取消
|
|
||||||
export function purchase_storage_cancel_query(data) {
|
|
||||||
return request({
|
|
||||||
url: 'purchase_order/purchase_storage_cancel_query',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//入库的时候批量收货及取消退货并收货
|
|
||||||
export function storage_purchase_confirm_goods(data) {
|
|
||||||
return request({
|
|
||||||
url: 'refunds/storage_purchase_confirm_goods',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//机器详情保修查完获取机器信息
|
|
||||||
export function warranty_res_info(data) {
|
|
||||||
return request({
|
|
||||||
url: 'res/warranty_res_info',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//导出操作订单详情
|
|
||||||
export function parts_export(data) {
|
|
||||||
return request({
|
|
||||||
url: 'order/parts_export',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//编辑报价师
|
|
||||||
export function edit_quote_user(data) {
|
|
||||||
return request({
|
|
||||||
url: 'res/edit_quote_user',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//批量添加采购备注
|
|
||||||
export function batch_remark(data) {
|
|
||||||
return request({
|
|
||||||
url: 'purchase_order/batch_remark',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//配件入库快速添加库位
|
|
||||||
export function add_location(data) {
|
|
||||||
return request({
|
|
||||||
url: 'location/add_location',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,458 +0,0 @@
|
||||||
/*
|
|
||||||
* @Author: your name
|
|
||||||
* @Date: 2020-10-09 16:35:34
|
|
||||||
* @LastEditTime: 2021-05-14 15:30:28
|
|
||||||
* @LastEditors: Please set LastEditors
|
|
||||||
* @Description: In User Settings Edit
|
|
||||||
* @FilePath: \aiguo_erp_vue\src\api\Income.js
|
|
||||||
*/
|
|
||||||
import request from '@axioshooks'
|
|
||||||
// 多账号详情
|
|
||||||
export function new_xy_product_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/new_xy_product_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 多账号添加
|
|
||||||
export function new_add_xy_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/new_add_xy_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 多账号编辑
|
|
||||||
export function new_edit_xy_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/new_edit_xy_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 删除图片
|
|
||||||
export function upload_image(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/upload_img',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 保修回填
|
|
||||||
export function res_warranty_backfill(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/res_warranty_backfill',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 已售出快速重新发布
|
|
||||||
export function edit_item(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/edit_item',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 已售出快速重新发布
|
|
||||||
export function sale_again_publish(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/sale_again_publish',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 闲鱼服务商发布---获取在库机器
|
|
||||||
export function xy_choose_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_choose_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 闲鱼服务商发布---获取分类
|
|
||||||
export function xy_channel_cat(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_channel_cat',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 闲鱼服务商发布---根据分类获取属性
|
|
||||||
export function xy_property(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_property',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 闲鱼服务商发布---获取质检项
|
|
||||||
export function xy_qc_item(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_qc_item',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 闲鱼服务商发布---根据品牌获取型号
|
|
||||||
export function xy_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 详情、质检报告
|
|
||||||
export function xy_product_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_product_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 添加
|
|
||||||
export function add_xy_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/add_xy_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 编辑
|
|
||||||
export function edit_xy_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/edit_xy_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 发布
|
|
||||||
export function xy_publish(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_publish',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取自己拍的图片,或闲鱼同城帮图片
|
|
||||||
export function get_img(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_img',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 商品列表
|
|
||||||
export function xy_product_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_product_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 订单列表
|
|
||||||
export function xy_order_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_order_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 修改订单收货地址
|
|
||||||
export function up_order_delivery_address(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/up_order_delivery_address',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 售后列表
|
|
||||||
export function xy_sale_after_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_sale_after_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 下架
|
|
||||||
export function batch_off_shelf(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/batch_off_shelf',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 批量删除
|
|
||||||
export function batch_product_del(data) {
|
|
||||||
return request({
|
|
||||||
url: 'api/xy/batch_product_del',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 订单发货
|
|
||||||
export function order_delivery_idle(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/order_delivery',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 售后退款 同意/拒绝
|
|
||||||
export function refund_after_sale(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/refund_after_sale',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 添加售后地址
|
|
||||||
export function add_after_sale_address(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/add_after_sale_address',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取售后地址
|
|
||||||
export function get_after_sale_address(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_after_sale_address',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取行政区划
|
|
||||||
export function administrative_division(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/administrative_division',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 编辑售后地址
|
|
||||||
export function edit_after_sale_address(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/edit_after_sale_address',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 删除售后地址
|
|
||||||
export function del_after_sale_address(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/del_after_sale_address',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 自动匹配
|
|
||||||
export function auto_match(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/auto_match',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 订单列表---换货发---根据imei获取对应机器
|
|
||||||
export function get_keywords_order_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_keywords_order_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 日志
|
|
||||||
export function xy_log(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_log',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 删除商品
|
|
||||||
export function xy_product_del(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_product_del',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 批量改价
|
|
||||||
export function batch_change_price(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/batch_change_price',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 批量翻库
|
|
||||||
export function xy_republish(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/xy_republish',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 批量改价---分类
|
|
||||||
export function batch_change_price_group(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/batch_change_price_group',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 自动调价
|
|
||||||
export function auto_change_price(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/auto_change_price',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取可使用的闲鱼账号
|
|
||||||
export function get_site_account(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_site_account',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取可使用的闲鱼账号
|
|
||||||
export function real_time_preview(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/real_time_preview',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 闲鱼列表批量发布
|
|
||||||
export function batch_xy_publish(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/batch_xy_publish',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据质检项选择版本类型
|
|
||||||
export function match_version_type(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/match_version_type',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 计算服务费
|
|
||||||
export function compute_server_fee(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/compute_server_fee',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取全部可用模版
|
|
||||||
export function get_all_desc(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_all_desc',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取默认模板
|
|
||||||
export function get_default_desc(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_default_desc',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//新增闲鱼内容模板
|
|
||||||
export function add_xy_desc(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/add_xy_desc',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//删除闲鱼内容模板
|
|
||||||
export function del_xy_desc(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/del_xy_desc',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//修改闲鱼内容模板
|
|
||||||
export function up_xy_desc(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/up_xy_desc',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//补订单
|
|
||||||
export function make_up_for_order(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/make_up_for_order',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//同步订单
|
|
||||||
export function order_synchronous(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/order_synchronous',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//立即发货校验
|
|
||||||
export function check_order_after_sale(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/check_order_after_sale',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 当前商户退货率
|
|
||||||
export function merchant_return_rate(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/merchant_return_rate',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 驳回原因
|
|
||||||
export function get_reject_reason(data) {
|
|
||||||
return request({
|
|
||||||
url: 'ag_server/get_reject_reason',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//瑕疵拍照-获取瑕疵项
|
|
||||||
export function get_defect_term(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_defect_term',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//瑕疵拍照-保存瑕疵图
|
|
||||||
export function save_defect_term_img(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/save_defect_term_img',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
import request from '@axioshooks'
|
|
||||||
|
|
||||||
//获取质检项
|
|
||||||
export function xy_qc_item(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/xy_qc_item',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -1,177 +0,0 @@
|
||||||
import request from '@axioshooks'
|
|
||||||
|
|
||||||
// 质检中心
|
|
||||||
|
|
||||||
// 机器信息(系统识别)
|
|
||||||
export function choose_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/choose_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function machine_info(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/machine_info',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 质检sku
|
|
||||||
export function xy_channel_cat(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/xy_channel_cat',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取回填sku
|
|
||||||
export function get_backfill_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/get_backfill_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//获取质检项
|
|
||||||
export function xy_qc_item(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/xy_qc_item',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//获取自己拍的图片
|
|
||||||
export function get_img(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/get_img',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// //上传照片
|
|
||||||
// export function upload_img(data) {
|
|
||||||
// return request({
|
|
||||||
// url: 'inspection_center/upload_img',
|
|
||||||
// method: 'post',
|
|
||||||
// data
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//添加保存质检报告
|
|
||||||
export function add_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/add_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//打印质检报告
|
|
||||||
export function inspection_report_print(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/inspection_report_print',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//质检报告详情
|
|
||||||
export function product_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/product_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//质检报告列表
|
|
||||||
export function inspection_report_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/inspection_report_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//编辑质检报告
|
|
||||||
export function edit_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/edit_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//删除质检报告
|
|
||||||
export function del_inspection_report(data) {
|
|
||||||
return request({
|
|
||||||
url: 'inspection_center/del_inspection_report',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 与实物一致
|
|
||||||
export function consistent_with_actual(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/consistent_with_actual',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 保存质检结果
|
|
||||||
export function quality_inspection(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/quality_inspection',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export function receiving_goods(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/receiving_goods',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function quality_inspection_report(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/quality_inspection_report',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function judgment_responsibility(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/judgment_responsibility',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function batch_qc_code_print(data) {
|
|
||||||
return request({
|
|
||||||
url: 'trusteeship/print_quality_inspection_codes',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function get_oss_sign_aliyun(data) {
|
|
||||||
return request({
|
|
||||||
url: 'base_config/get_oss_sign_aliyun',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export function get_defect_term(data) {
|
|
||||||
return request({
|
|
||||||
url: 'xy/get_defect_term',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,302 +0,0 @@
|
||||||
import request from '@axioshooks'
|
|
||||||
// 订单列表---换货发---根据imei获取对应机器
|
|
||||||
export function add_chx_info(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/add_chx_info',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 订单列表---换货发---根据imei获取对应机器
|
|
||||||
export function get_keywords_order_model1(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/get_keywords_order_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取转转、闲鱼定价、销售周期
|
|
||||||
export function chx_take_picture(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_take_picture',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取转转、闲鱼定价、销售周期
|
|
||||||
export function zz_xy_sale_info(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/zz_xy_sale_info',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 手动啦取更新收货人信息
|
|
||||||
export function get_consignee_info(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/get_consignee_info',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取近7天的拍卖场次
|
|
||||||
export function session_room(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/session_room',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 场次查询
|
|
||||||
export function chx_session_query(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_session_query',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 商品日志
|
|
||||||
export function chx_product_log(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_product_log',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 一键询价
|
|
||||||
export function batch_query_price(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/batch_query_price',
|
|
||||||
method: 'post',
|
|
||||||
data,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 一键上拍(批量发布)
|
|
||||||
export function batch_product_release(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/batch_product_release',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 历史询价
|
|
||||||
export function history_query_price(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/history_query_price',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 打印条码
|
|
||||||
export function back_print(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/back_print',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取机器等级
|
|
||||||
export function chx_match_grade(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_match_grade',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 批量下架
|
|
||||||
export function batch_exit_auction(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/batch_exit_auction',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取闲鱼图片上传到采货侠
|
|
||||||
export function xy_img_upload(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/xy_img_upload',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取转转图片上传到采货侠
|
|
||||||
export function zz_img_upload(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/zz_img_upload',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 订单发布
|
|
||||||
export function order_delivery(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/order_delivery',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 售后列表
|
|
||||||
export function chx_after_sale_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_after_sale_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 订单列表
|
|
||||||
export function chx_order_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_order_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 恢复
|
|
||||||
export function chx_product_recover(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_product_recover',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 忽略
|
|
||||||
export function chx_product_ignore(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_product_ignore',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//
|
|
||||||
export function chx_product_list(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_product_list',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 重新质检、重新定价、重新拍照、重新发布
|
|
||||||
export function copy_chx_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/copy_chx_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 主动下架
|
|
||||||
export function exit_auction(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/exit_auction',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取手机型号
|
|
||||||
export function chx_choose_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_choose_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取质检项
|
|
||||||
export function get_qc_item(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/get_qc_item',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 保存质检项
|
|
||||||
export function save_qc_item(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/save_qc_item',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 获取拍卖场次
|
|
||||||
export function chx_auction_room(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_auction_room',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 添加商品
|
|
||||||
export function chx_add_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_add_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 查询起拍价
|
|
||||||
export function query_price(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/query_price',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 查询维护起拍价
|
|
||||||
export function chx_product_details(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_product_details',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 保存定价
|
|
||||||
export function pricing(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/pricing',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 立即发布
|
|
||||||
export function product_release(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/product_release',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取采货侠分类、品牌、型号
|
|
||||||
export function chx_model(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/chx_model',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//批量忽略
|
|
||||||
export function batch_product_ignore(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/batch_product_ignore',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//批量删除
|
|
||||||
export function del_chx_product(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/del_chx_product',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//采货侠-上传图片
|
|
||||||
export function upload_img(data) {
|
|
||||||
return request({
|
|
||||||
url: 'chx/upload_img',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -109,7 +109,7 @@ const onNavTo=(path)=>{
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.breadcrumbitem{
|
.breadcrumbitem{
|
||||||
|
font-size: 14px;
|
||||||
border-top-left-radius: 6px;
|
border-top-left-radius: 6px;
|
||||||
border-top-right-radius: 6px;
|
border-top-right-radius: 6px;
|
||||||
padding: 0px 12px;
|
padding: 0px 12px;
|
||||||
|
|
|
@ -90,6 +90,7 @@ const data = reactive({
|
||||||
});
|
});
|
||||||
const params = ref([]); //显示图片
|
const params = ref([]); //显示图片
|
||||||
const fileList = ref(props.imgList); //接口文件
|
const fileList = ref(props.imgList); //接口文件
|
||||||
|
const new_fileList = ref([]);
|
||||||
const uploadingPromises = ref([]);
|
const uploadingPromises = ref([]);
|
||||||
// 在文件添加到fileList之前调用
|
// 在文件添加到fileList之前调用
|
||||||
const beforeUpload = (file) => {
|
const beforeUpload = (file) => {
|
||||||
|
@ -173,9 +174,27 @@ const handleUpload = (file) => {
|
||||||
// 所有文件上传完成后的回调
|
// 所有文件上传完成后的回调
|
||||||
const allFilesUploaded = () => {
|
const allFilesUploaded = () => {
|
||||||
params.value = [];
|
params.value = [];
|
||||||
for (var i = 0; i < fileList.value.length; i++) {
|
let imglist = [];
|
||||||
params.value.push(fileList.value[i].raw);
|
imglist = fileList.value.filter((e) => e.raw);
|
||||||
|
if (!new_fileList.value.length) {
|
||||||
|
for (var i = 0; i < imglist.length; i++) {
|
||||||
|
params.value.push(imglist[i].raw);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
const new_name = [];
|
||||||
|
new_fileList.value.map((item) => {
|
||||||
|
if (item.raw) {
|
||||||
|
new_name.push(item.uid);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
imglist = fileList.value.filter(
|
||||||
|
(item) => !new_name.includes(item.uid) && item.name
|
||||||
|
);
|
||||||
|
for (var i = 0; i < imglist.length; i++) {
|
||||||
|
params.value.push(imglist[i].raw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
new_fileList.value = fileList.value;
|
||||||
$emit("onSuccessFiles", params.value);
|
$emit("onSuccessFiles", params.value);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -186,7 +205,7 @@ const allFilesUploaded = () => {
|
||||||
.el-upload-list--picture-card .el-upload-list__item {
|
.el-upload-list--picture-card .el-upload-list__item {
|
||||||
width: 62px;
|
width: 62px;
|
||||||
height: 62px;
|
height: 62px;
|
||||||
line-height: 72px;
|
line-height: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
|
@ -211,7 +211,7 @@ const scrollHeight = () => {
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.table-box {
|
.table-box {
|
||||||
height: calc(100vh - 250px);
|
height: calc(100vh - 265px);
|
||||||
}
|
}
|
||||||
|
|
||||||
ul,
|
ul,
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router'
|
import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router'
|
||||||
import CommodityManagement from './views/CommodityManagement/index.vue';
|
|
||||||
import NewlyBuiltGoods from './views/NewlyBuiltGoods/index.vue';
|
|
||||||
import Home from './views/Home.vue';
|
|
||||||
import QualityWork from './views/qualityWork/index.vue';
|
|
||||||
import NotFound from "./views/NotFound.vue";
|
|
||||||
import Revicerecord from './views/reviceRecord/index.vue';
|
|
||||||
import QualityRecord from "./views/qualityRecord/index.vue";
|
|
||||||
import Qualityreport from "./views/qualityreport/index.vue";
|
|
||||||
import XyShop from "./views/XyShop/index.vue";
|
|
||||||
import ServiceProviderList from "./views/ServiceProviderList/index.vue";
|
|
||||||
import OperationCenter from "./views/OperationCenter/index.vue";
|
|
||||||
|
|
||||||
import { markRaw } from 'vue';
|
import { markRaw } from 'vue';
|
||||||
|
import Home from './views/Home.vue';
|
||||||
|
import NotFound from "./views/NotFound.vue";
|
||||||
|
import CommodityManagement from './views/CommodityManagement/index.vue';
|
||||||
|
import OrderManagement from './views/OrderManagement/index.vue';
|
||||||
|
import AfterSalesManagement from './views/AfterSalesManagement/index.vue';
|
||||||
|
import NewlyBuiltGoods from './views/NewlyBuiltGoods/index.vue';
|
||||||
|
import XyShop from "./views/XyShop/index.vue";
|
||||||
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -38,14 +33,6 @@ export const routes = [
|
||||||
icon: markRaw(Location)
|
icon: markRaw(Location)
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
|
||||||
meta: {
|
|
||||||
label: "商品管理",
|
|
||||||
icon: markRaw(Location)
|
|
||||||
},
|
|
||||||
path: '/CommodityManagement',
|
|
||||||
component: CommodityManagement,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
meta: {
|
meta: {
|
||||||
label: "新建商品",
|
label: "新建商品",
|
||||||
|
@ -56,47 +43,31 @@ export const routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
meta: {
|
meta: {
|
||||||
label: "收货记录",
|
label: "商品管理",
|
||||||
icon: markRaw(Location)
|
icon: markRaw(Location)
|
||||||
},
|
},
|
||||||
path: '/revicerecord',
|
path: '/CommodityManagement',
|
||||||
component: Revicerecord,
|
component: CommodityManagement,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
meta: {
|
meta: {
|
||||||
label: "质检报告",
|
label: "订单管理",
|
||||||
icon: markRaw(Location)
|
icon: markRaw(Location)
|
||||||
},
|
},
|
||||||
hidden: true,
|
path: '/OrderManagement',
|
||||||
path: '/qualityreport',
|
component: OrderManagement,
|
||||||
component: Qualityreport,
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
meta: {
|
meta: {
|
||||||
label: "开发平台",
|
label: "售后管理",
|
||||||
icon: markRaw(Setting)
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
meta: {
|
|
||||||
label: "质检工作台",
|
|
||||||
icon: markRaw(Location)
|
icon: markRaw(Location)
|
||||||
},
|
},
|
||||||
path: '/qualityWork',
|
path: '/AfterSalesManagement',
|
||||||
component: QualityWork,
|
component: AfterSalesManagement,
|
||||||
},
|
|
||||||
{
|
|
||||||
meta: {
|
|
||||||
label: "质检记录",
|
|
||||||
icon: markRaw(Location)
|
|
||||||
},
|
|
||||||
path: '/qualityRecord',
|
|
||||||
component: QualityRecord,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
meta: {
|
meta: {
|
||||||
label: "设置",
|
label: "设置",
|
||||||
|
@ -110,22 +81,8 @@ export const routes = [
|
||||||
path: '/XyShop',
|
path: '/XyShop',
|
||||||
component: XyShop,
|
component: XyShop,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
meta: {
|
|
||||||
label: "站点用户列表",
|
|
||||||
icon: markRaw(Location)
|
|
||||||
},
|
|
||||||
path: '/serviceProviderList',
|
|
||||||
component: ServiceProviderList,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
meta: {
|
|
||||||
label: "运营中心",
|
|
||||||
icon: markRaw(Location)
|
|
||||||
},
|
|
||||||
path: '/OperationCenter',
|
|
||||||
component: OperationCenter,
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
|
{ path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
|
||||||
|
|
|
@ -146,13 +146,13 @@ export default ({
|
||||||
if (fileindex) {
|
if (fileindex) {
|
||||||
filekey = newdatas["filekey"];
|
filekey = newdatas["filekey"];
|
||||||
}
|
}
|
||||||
console.log(newdatas,'newdatas',filekey);
|
// console.log(newdatas,'newdatas',filekey);
|
||||||
_Object.values(data).map((d, index) => {
|
_Object.values(data).map((d, index) => {
|
||||||
if (filekey != "" && Object.keys(data)[index] == filekey) {
|
if (filekey != "" && Object.keys(data)[index] == filekey) {
|
||||||
if (d && Array.isArray(d)) {
|
if (d && Array.isArray(d)) {
|
||||||
console.log(d,'ddd');
|
// console.log(d,'ddd');
|
||||||
d.map((h, index) => {
|
d.map((h, index) => {
|
||||||
console.log(h,'file');
|
// console.log(h,'file');
|
||||||
params.append(filekey,h, h.name);
|
params.append(filekey,h, h.name);
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1,420 @@
|
||||||
|
<template>
|
||||||
|
<div class="Special_offer_box">
|
||||||
|
<div class="table_box_header">
|
||||||
|
<el-tabs class="demo-tabs" v-model="activeName" @tab-change="TabChange">
|
||||||
|
<el-tab-pane
|
||||||
|
v-for="item in tabs"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:name="item.value"
|
||||||
|
></el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<SearchForm :inputs="Inputs" @onSearch="onSearch" @onRest="onRest" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table_box_center">
|
||||||
|
<Table
|
||||||
|
ref="TableRef"
|
||||||
|
:key="TableKey"
|
||||||
|
:TabLoading="TabLoading"
|
||||||
|
:TableData="TableData"
|
||||||
|
:TableLabel="TableLabel"
|
||||||
|
>
|
||||||
|
<template #OperateButton="{ row }">
|
||||||
|
<OperateButton
|
||||||
|
:ButtonList="row.ButtonGroup"
|
||||||
|
:row="row"
|
||||||
|
></OperateButton></template
|
||||||
|
></Table>
|
||||||
|
<PaginaTion
|
||||||
|
:total="totalNumbel"
|
||||||
|
v-model:current-page="commodityInfoDto.pageNo"
|
||||||
|
v-model:page-size="commodityInfoDto.pageSize"
|
||||||
|
@handleSizeChange="handleSizeChange"
|
||||||
|
@handleCurrentChange="getDatas"
|
||||||
|
></PaginaTion>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, unref, computed, reactive, onMounted } from "vue";
|
||||||
|
import { router } from "@/router.js";
|
||||||
|
import { Plus } from "@element-plus/icons-vue";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import SearchForm from "@components/searchForm/index.vue";
|
||||||
|
import Table from "@components/table.vue";
|
||||||
|
import OperateButton from "@/components/OperateButton.vue";
|
||||||
|
import PaginaTion from "@components/Pagination.vue";
|
||||||
|
import {
|
||||||
|
select_by_conditions,
|
||||||
|
edit_product,
|
||||||
|
publish,
|
||||||
|
pull_off,
|
||||||
|
delete_one,
|
||||||
|
} from "@/api/CommodityManagement";
|
||||||
|
import { getshopInfo } from "@/api/newlybuiltgoods";
|
||||||
|
const activeName = ref("");
|
||||||
|
const tabs = ref([
|
||||||
|
{ label: "全部", value: "", total: 0 },
|
||||||
|
{ label: "草稿箱", value: "1", total: 0 },
|
||||||
|
{ label: "待发布", value: "2", total: 0 },
|
||||||
|
{ label: "发布成功", value: "-3", total: 0 },
|
||||||
|
{ label: "发布失败", value: "-4", total: 0 },
|
||||||
|
{ label: "手动下架", value: "-2", total: 0 },
|
||||||
|
{ label: "已售出", value: "3", total: 0 },
|
||||||
|
{ label: "其他", value: "99", total: 0 },
|
||||||
|
]);
|
||||||
|
const Inputs = ref([
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "查询闲鱼商品ID",
|
||||||
|
title: "闲鱼商品ID",
|
||||||
|
name: "commodityId",
|
||||||
|
value: "",
|
||||||
|
popover: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请选择闲鱼店铺",
|
||||||
|
title: "闲鱼店铺",
|
||||||
|
name: "xyId",
|
||||||
|
value: "",
|
||||||
|
options: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请输入商品类型",
|
||||||
|
title: "商品类型",
|
||||||
|
name: "auctionType",
|
||||||
|
value: "",
|
||||||
|
options: [
|
||||||
|
{ label: "一口价", value: "a" },
|
||||||
|
{ label: "拍卖", value: "b" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请选择分类",
|
||||||
|
title: "商品分类",
|
||||||
|
name: "itemBizType",
|
||||||
|
value: "",
|
||||||
|
options: [
|
||||||
|
{ label: "普通商品", value: "2" },
|
||||||
|
{ label: "特卖商品", value: "24" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "请输入商品名称",
|
||||||
|
name: "title",
|
||||||
|
value: "",
|
||||||
|
title: "商品名称",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-date-picker",
|
||||||
|
title: "创建时间",
|
||||||
|
placeholder: "",
|
||||||
|
name: "createTime",
|
||||||
|
value: [],
|
||||||
|
width: "215px",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-date-picker",
|
||||||
|
title: "上架时间",
|
||||||
|
placeholder: "",
|
||||||
|
name: "shelfTime",
|
||||||
|
value: [],
|
||||||
|
width: "215px",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const TableRef = ref(null);
|
||||||
|
const TableKey = ref(new Date().getTime());
|
||||||
|
const TabLoading = ref(false);
|
||||||
|
const TableData = ref([]);
|
||||||
|
const TableLabel = ref([
|
||||||
|
{
|
||||||
|
label: "闲鱼商品ID",
|
||||||
|
param: "commodityId",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "创建时间",
|
||||||
|
param: "createTime",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "上架时间",
|
||||||
|
param: "createTime",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "商品",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "210",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "商品状态",
|
||||||
|
param: "publishStatusName",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "商品类型",
|
||||||
|
param: "itemBizType",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "分类",
|
||||||
|
param: "auctionType",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "售价(元)",
|
||||||
|
param: "retailPrice",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "库存(个)",
|
||||||
|
param: "stock",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "销量",
|
||||||
|
param: "salesVolume",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "闲鱼店铺",
|
||||||
|
param: "xyName",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "操作",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
fixed: "right",
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const New_TableLabel = ref([]);
|
||||||
|
const ButtonListGroup = ref([
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "编辑",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {
|
||||||
|
edit_product(row.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
router.push({
|
||||||
|
path: "/NewlyBuiltGoods",
|
||||||
|
query: {
|
||||||
|
params: JSON.stringify(res.data),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "复制",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "上架",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {
|
||||||
|
publish(row.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
ElMessage.success(res.msg);
|
||||||
|
getDatas();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-popconfirm",
|
||||||
|
name: "下架",
|
||||||
|
title: "是否下架?",
|
||||||
|
cancelText: "不用了",
|
||||||
|
popconfirmIcon: "el-icon-info",
|
||||||
|
iconColor: "red",
|
||||||
|
type: "danger",
|
||||||
|
show: false,
|
||||||
|
confirm: (row) => {
|
||||||
|
pull_off(row.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
ElMessage.success(res.msg);
|
||||||
|
getDatas();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-popconfirm",
|
||||||
|
name: "删除",
|
||||||
|
title: "是否删除?",
|
||||||
|
cancelText: "不用了",
|
||||||
|
popconfirmIcon: "el-icon-info",
|
||||||
|
iconColor: "red",
|
||||||
|
type: "danger",
|
||||||
|
show: false,
|
||||||
|
confirm: (row) => {
|
||||||
|
delete_one(row.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
ElMessage.success(res.msg);
|
||||||
|
getDatas();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "日志",
|
||||||
|
show: false,
|
||||||
|
type: "warning",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {},
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
let commodityInfoDto = reactive({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
publishStatus: "",
|
||||||
|
});
|
||||||
|
const totalNumbel = ref(0);
|
||||||
|
const getDatas = () => {
|
||||||
|
TabLoading.value = true;
|
||||||
|
select_by_conditions(commodityInfoDto)
|
||||||
|
.then((res) => {
|
||||||
|
TabLoading.value = false;
|
||||||
|
if (res.code === "200") {
|
||||||
|
const newData = Object.assign([], res.data.data);
|
||||||
|
newData.map((item) => {
|
||||||
|
item.ButtonGroup = ButtonListGroup.value.map((el) => {
|
||||||
|
if (
|
||||||
|
(el.name === "编辑" &&
|
||||||
|
[1, -4, -2].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "下架" && [-3].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "复制" &&
|
||||||
|
[1, -2, -3, -4, 3].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "上架" && [-2, -4].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "删除" && [1, -4, -2].includes(item.publishStatus))
|
||||||
|
) {
|
||||||
|
return { ...el, show: true };
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
console.log(newData);
|
||||||
|
TableData.value = newData;
|
||||||
|
totalNumbel.value = res.data.totalCount;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
TabLoading.value = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//查询
|
||||||
|
const onSearch = (value) => {
|
||||||
|
if (value.createTime) {
|
||||||
|
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
||||||
|
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
||||||
|
} else if (value.shelfTime) {
|
||||||
|
value.startShelfTime = new Date(value.shelfTime[0]).getTime();
|
||||||
|
value.endShelfTime = new Date(value.shelfTime[1]).getTime() + 86399999;
|
||||||
|
}
|
||||||
|
commodityInfoDto = {
|
||||||
|
...commodityInfoDto,
|
||||||
|
...value,
|
||||||
|
};
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
|
// 重置
|
||||||
|
const onRest = (value) => {
|
||||||
|
commodityInfoDto = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
publishStatus: activeName.value,
|
||||||
|
};
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
|
const get_shopInfo = () => {
|
||||||
|
getshopInfo().then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
const storeList = [];
|
||||||
|
res.data.forEach((item) => {
|
||||||
|
storeList.push({ label: item.xyName, value: item.id });
|
||||||
|
});
|
||||||
|
Inputs.value.find((e) => e.title == "闲鱼店铺").options = storeList;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
TabChange();
|
||||||
|
get_shopInfo();
|
||||||
|
});
|
||||||
|
const handleSizeChange = () => {
|
||||||
|
commodityInfoDto.pageNo = 1;
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
|
const TabChange = (val) => {
|
||||||
|
commodityInfoDto.publishStatus = activeName.value;
|
||||||
|
getDatas();
|
||||||
|
TableLabel.value.forEach((e) => {
|
||||||
|
e.show = !(
|
||||||
|
e.hasOwnProperty("NumberType") && !e.NumberType.includes(Number(val))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
New_TableLabel.value = TableLabel.value;
|
||||||
|
TableKey.value = new Date().getTime();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.Special_offer_box {
|
||||||
|
height: calc(100vh - 38px);
|
||||||
|
background: #f1f2f5;
|
||||||
|
}
|
||||||
|
.table_box_header {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
.table_box_center {
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -48,10 +48,11 @@ import OperateButton from "@/components/OperateButton.vue";
|
||||||
import PaginaTion from "@components/Pagination.vue";
|
import PaginaTion from "@components/Pagination.vue";
|
||||||
import {
|
import {
|
||||||
select_by_conditions,
|
select_by_conditions,
|
||||||
get_commodity_id,
|
edit_product,
|
||||||
publish,
|
publish,
|
||||||
pull_off,
|
pull_off,
|
||||||
delete_one,
|
delete_one,
|
||||||
|
get_commodity
|
||||||
} from "@/api/CommodityManagement";
|
} from "@/api/CommodityManagement";
|
||||||
import { getshopInfo } from "@/api/newlybuiltgoods";
|
import { getshopInfo } from "@/api/newlybuiltgoods";
|
||||||
const activeName = ref("");
|
const activeName = ref("");
|
||||||
|
@ -228,7 +229,7 @@ const ButtonListGroup = ref([
|
||||||
type: "primary",
|
type: "primary",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {
|
confirm: (row) => {
|
||||||
get_commodity_id(row.id).then((res) => {
|
edit_product(row.id).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
router.push({
|
router.push({
|
||||||
path: "/NewlyBuiltGoods",
|
path: "/NewlyBuiltGoods",
|
||||||
|
@ -246,7 +247,18 @@ const ButtonListGroup = ref([
|
||||||
show: false,
|
show: false,
|
||||||
type: "primary",
|
type: "primary",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {},
|
confirm: (row) => {
|
||||||
|
get_commodity(row.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
router.push({
|
||||||
|
path: "/NewlyBuiltGoods",
|
||||||
|
query: {
|
||||||
|
params: JSON.stringify(res.data),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
AssemblyName: "el-link",
|
AssemblyName: "el-link",
|
||||||
|
@ -348,6 +360,7 @@ const getDatas = () => {
|
||||||
};
|
};
|
||||||
//查询
|
//查询
|
||||||
const onSearch = (value) => {
|
const onSearch = (value) => {
|
||||||
|
commodityInfoDto.pageNo=1;
|
||||||
if (value.createTime) {
|
if (value.createTime) {
|
||||||
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
||||||
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import {useRouter} from "vue-router";
|
import {useRouter} from "vue-router";
|
||||||
const router=useRouter();
|
const router=useRouter();
|
||||||
router.push("/saleorder");
|
router.push("/NewlyBuiltGoods");
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
style="margin: 2px 5px 2px 0px"
|
style="margin: 2px 5px 2px 0px"
|
||||||
v-for="(el, ind) in item.valueGrop"
|
v-for="(el, ind) in item.valueGroup"
|
||||||
:key="ind"
|
:key="ind"
|
||||||
:type="el.type"
|
:type="el.type"
|
||||||
round
|
round
|
||||||
|
@ -186,7 +186,7 @@ const submit_specification = (formEl) => {
|
||||||
valueName: "",
|
valueName: "",
|
||||||
placeholder: "请输入规格属性,按回车健确认",
|
placeholder: "请输入规格属性,按回车健确认",
|
||||||
},
|
},
|
||||||
valueGrop: [],
|
valueGroup: [],
|
||||||
});
|
});
|
||||||
ruleForm.name = "";
|
ruleForm.name = "";
|
||||||
});
|
});
|
||||||
|
@ -199,38 +199,38 @@ function operation(status, item, index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function onDelValueItem(index, ind) {
|
function onDelValueItem(index, ind) {
|
||||||
newDataList.value[index].valueGrop.splice(ind, 1);
|
newDataList.value[index].valueGroup.splice(ind, 1);
|
||||||
}
|
}
|
||||||
function input_child_keydown(e, name, index) {
|
function input_child_keydown(e, name, index) {
|
||||||
if (e.key !== "Enter" || !name) return;
|
if (e.key !== "Enter" || !name) return;
|
||||||
if (
|
if (
|
||||||
newDataList.value[index].valueGrop.find(
|
newDataList.value[index].valueGroup.find(
|
||||||
(e) => e.label.replace(/\s+/g, "") === name.replace(/\s+/g, "")
|
(e) => e.label.replace(/\s+/g, "") === name.replace(/\s+/g, "")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return ElMessage.warning("商品属性不能重复!");
|
return ElMessage.warning("商品属性不能重复!");
|
||||||
if (newDataList.value.length <= 1) {
|
if (newDataList.value.length <= 1) {
|
||||||
if (newDataList.value[index].valueGrop.length >= 10) return;
|
if (newDataList.value[index].valueGroup.length >= 10) return;
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
newDataList.value[0].valueGrop.length *
|
newDataList.value[0].valueGroup.length *
|
||||||
newDataList.value[1].valueGrop.length >=
|
newDataList.value[1].valueGroup.length >=
|
||||||
100
|
100
|
||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
newDataList.value[index].valueGrop.push({
|
newDataList.value[index].valueGroup.push({
|
||||||
type: "danger",
|
type: "danger",
|
||||||
label: newDataList.value[index].inputGroup.valueName,
|
label: newDataList.value[index].inputGroup.valueName,
|
||||||
});
|
});
|
||||||
newDataList.value[index].num = newDataList.value[index].valueGrop.length;
|
newDataList.value[index].num = newDataList.value[index].valueGroup.length;
|
||||||
newDataList.value[index].inputGroup.valueName = "";
|
newDataList.value[index].inputGroup.valueName = "";
|
||||||
}
|
}
|
||||||
const submitForm = () => {
|
const submitForm = () => {
|
||||||
console.log(newDataList.value, "newDataList.value", newDataList.value.length);
|
console.log(newDataList.value, "newDataList.value", newDataList.value.length);
|
||||||
if (!newDataList.value.length)
|
if (!newDataList.value.length)
|
||||||
return ElMessage.warning("没有添加任何规格属性!");
|
return ElMessage.warning("没有添加任何规格属性!");
|
||||||
if (!newDataList.value.every((item) => item.valueGrop.length))
|
if (!newDataList.value.every((item) => item.valueGroup.length))
|
||||||
return ElMessage.warning("添加规格后至少添加一个属性值!");
|
return ElMessage.warning("添加规格后至少添加一个属性值!");
|
||||||
console.log(newDataList.value, "newDataList.value");
|
console.log(newDataList.value, "newDataList.value");
|
||||||
$emit("specificationSubmit", newDataList.value);
|
$emit("specificationSubmit", newDataList.value);
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
v-for="el in createGoods.radio_group_goods.options"
|
v-for="el in createGoods.radio_group_goods.options"
|
||||||
:key="el.value"
|
:key="el.value"
|
||||||
:value="el.value"
|
:value="el.value"
|
||||||
@change="el.change"
|
@change="changeGoodsType"
|
||||||
>{{ el.label }}</el-radio
|
>{{ el.label }}</el-radio
|
||||||
>
|
>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
<el-form-item :label="createGoods.radio_group_select.label">
|
<el-form-item :label="createGoods.radio_group_select.label">
|
||||||
<div style="margin-right: 10px">
|
<div style="margin-right: 10px">
|
||||||
<el-radio-group
|
<el-radio-group
|
||||||
@change="createGoods.radio_group_select.change"
|
@change="changeClass"
|
||||||
v-model="ruleForm[createGoods.radio_group_select.params]"
|
v-model="ruleForm[createGoods.radio_group_select.params]"
|
||||||
>
|
>
|
||||||
<el-radio-button
|
<el-radio-button
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
v-model="
|
v-model="
|
||||||
ruleForm.flashSaleDO[createGoods.radio_group_sell.params]
|
ruleForm.flashSaleDO[createGoods.radio_group_sell.params]
|
||||||
"
|
"
|
||||||
@change="createGoods.radio_group_sell.change"
|
@change="changeSellType"
|
||||||
>
|
>
|
||||||
<el-radio
|
<el-radio
|
||||||
v-for="el in createGoods.radio_group_sell.options"
|
v-for="el in createGoods.radio_group_sell.options"
|
||||||
|
@ -497,8 +497,8 @@ import {
|
||||||
address_default,
|
address_default,
|
||||||
publish_shelve,
|
publish_shelve,
|
||||||
} from "@/api/newlybuiltgoods";
|
} from "@/api/newlybuiltgoods";
|
||||||
|
let routerParams = reactive({});
|
||||||
let ruleForm = reactive({
|
let ruleForm = ref({
|
||||||
bidDate: [],
|
bidDate: [],
|
||||||
auctionType: "b", //商品类型
|
auctionType: "b", //商品类型
|
||||||
itemBizType: 24, //商品业务类型 0 已验货不入仓,1 已验货入仓,2 普通商品 特卖固定24
|
itemBizType: 24, //商品业务类型 0 已验货不入仓,1 已验货入仓,2 普通商品 特卖固定24
|
||||||
|
@ -516,7 +516,7 @@ let ruleForm = reactive({
|
||||||
desc: "", //商品描述
|
desc: "", //商品描述
|
||||||
reservePrice: "", //商品售价
|
reservePrice: "", //商品售价
|
||||||
originalPrice: "", //商品原价
|
originalPrice: "", //商品原价
|
||||||
stuffStatus: "", // 商品成色
|
stuffStatus: "", //商品成色
|
||||||
divisionId: "", //发货地取最后一级
|
divisionId: "", //发货地取最后一级
|
||||||
categoryId: 0, //商品类目Id,手机: 50025386(long型,一般8~10位)
|
categoryId: 0, //商品类目Id,手机: 50025386(long型,一般8~10位)
|
||||||
bidDto: {
|
bidDto: {
|
||||||
|
@ -535,12 +535,13 @@ let ruleForm = reactive({
|
||||||
],
|
],
|
||||||
xyImages: [], //闲鱼图片集合
|
xyImages: [], //闲鱼图片集合
|
||||||
aliImages: [], //阿里图片集合
|
aliImages: [], //阿里图片集合
|
||||||
whiteBgImage: "", // 白底图(闲鱼)
|
whiteBgImage: "", //白底图(闲鱼)
|
||||||
|
whiteAliImage: "",
|
||||||
flag: "1", //草稿箱-0 发布-1
|
flag: "1", //草稿箱-0 发布-1
|
||||||
republishId: 0, //重新发布的商品id
|
republishId: 0, //重新发布的商品id
|
||||||
logistics: "1", //物流配置 1包邮 2统一运费 bidStep
|
logistics: 1, //物流配置 1包邮 2统一运费 bidStep
|
||||||
transportFee: "", // 物流配置选择2统一运费时传递
|
transportFee: "", //物流配置选择2统一运费时传递
|
||||||
templateId: 0, // 物流配置选择3运费模板时候传递
|
templateId: "", //物流配置选择3运费模板时候传递
|
||||||
});
|
});
|
||||||
|
|
||||||
const createGoods = reactive({
|
const createGoods = reactive({
|
||||||
|
@ -554,51 +555,78 @@ const createGoods = reactive({
|
||||||
{
|
{
|
||||||
label: "一口价",
|
label: "一口价",
|
||||||
value: "b",
|
value: "b",
|
||||||
change: () => {
|
|
||||||
ruleFormRef.value.clearValidate();
|
|
||||||
priceList.fixPrice = [
|
|
||||||
{
|
|
||||||
type: "add",
|
|
||||||
label: "商品规格",
|
|
||||||
add: () => {
|
|
||||||
priceList.specificationDialogVisible = true;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "el-input",
|
|
||||||
label: "售价",
|
|
||||||
prop: "reservePrice",
|
|
||||||
params: "reservePrice",
|
|
||||||
disabled: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "el-input",
|
|
||||||
label: "原价",
|
|
||||||
params: "originalPrice",
|
|
||||||
disabled: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "el-input",
|
|
||||||
label: "库存",
|
|
||||||
prop: "quantity",
|
|
||||||
params: "quantity",
|
|
||||||
disabled: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "el-select",
|
|
||||||
label: "成色",
|
|
||||||
prop: "stuffStatus",
|
|
||||||
params: "stuffStatus",
|
|
||||||
disabled: true,
|
|
||||||
options: qualityData.value,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "拍卖",
|
label: "拍卖",
|
||||||
value: "a",
|
value: "a",
|
||||||
change: () => {
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
radio_group_select: {
|
||||||
|
type: "el-radio-group",
|
||||||
|
params: "itemBizType",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: "闲鱼特卖",
|
||||||
|
value: 24,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "普通商品",
|
||||||
|
value: 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
radio_group_sell: {
|
||||||
|
type: "el-radio-group",
|
||||||
|
label: "特卖类型",
|
||||||
|
params: "tag",
|
||||||
|
prop: "tag",
|
||||||
|
loading: false,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: "临期",
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "孤品",
|
||||||
|
value: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "断码",
|
||||||
|
value: 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "微瑕",
|
||||||
|
value: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "尾货",
|
||||||
|
value: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "官翻",
|
||||||
|
value: 6,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "全新",
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "福袋",
|
||||||
|
value: 8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "其他",
|
||||||
|
value: 9,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const changeGoodsType = (e) => {
|
||||||
|
console.log(e, "eree");
|
||||||
|
ruleFormRef.value.clearValidate();
|
||||||
|
if (e == "a") {
|
||||||
ruleFormRef.value.clearValidate();
|
ruleFormRef.value.clearValidate();
|
||||||
priceList.fixPrice = [
|
priceList.fixPrice = [
|
||||||
{
|
{
|
||||||
|
@ -647,9 +675,7 @@ const createGoods = reactive({
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查结束时间是否在开始时间后的15天内
|
// 检查结束时间是否在开始时间后的15天内
|
||||||
const maxEndTime = new Date(
|
const maxEndTime = new Date(now.getTime() + 15 * 24 * 60 * 60 * 1000); // 当前时间后的15天
|
||||||
now.getTime() + 15 * 24 * 60 * 60 * 1000
|
|
||||||
); // 当前时间后的15天
|
|
||||||
if (
|
if (
|
||||||
endTime.getTime() <= startTime.getTime() ||
|
endTime.getTime() <= startTime.getTime() ||
|
||||||
endTime.getTime() > maxEndTime.getTime()
|
endTime.getTime() > maxEndTime.getTime()
|
||||||
|
@ -660,11 +686,11 @@ const createGoods = reactive({
|
||||||
return false; // 或者抛出一个错误,或者根据你的需求处理
|
return false; // 或者抛出一个错误,或者根据你的需求处理
|
||||||
}
|
}
|
||||||
if (e) {
|
if (e) {
|
||||||
ruleForm.bidDto.bidStartTime = new Date(e[0]).getTime();
|
ruleForm.value.bidDto.bidStartTime = new Date(e[0]).getTime();
|
||||||
ruleForm.bidDto.bidEndTime = new Date(e[1]).getTime();
|
ruleForm.value.bidDto.bidEndTime = new Date(e[1]).getTime();
|
||||||
} else {
|
} else {
|
||||||
ruleForm.bidDto.bidStartTime = "";
|
ruleForm.value.bidDto.bidStartTime = "";
|
||||||
ruleForm.bidDto.bidEndTime = "";
|
ruleForm.value.bidDto.bidEndTime = "";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -685,87 +711,63 @@ const createGoods = reactive({
|
||||||
options: qualityData.value,
|
options: qualityData.value,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
} else if (e == "b") {
|
||||||
|
priceList.fixPrice = [
|
||||||
|
{
|
||||||
|
type: "add",
|
||||||
|
label: "商品规格",
|
||||||
|
add: () => {
|
||||||
|
priceList.specificationDialogVisible = true;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
{
|
||||||
|
type: "el-input",
|
||||||
|
label: "售价",
|
||||||
|
prop: "reservePrice",
|
||||||
|
params: "reservePrice",
|
||||||
|
disabled: false,
|
||||||
},
|
},
|
||||||
radio_group_select: {
|
{
|
||||||
type: "el-radio-group",
|
type: "el-input",
|
||||||
params: "itemBizType",
|
label: "原价",
|
||||||
change: (e) => {
|
params: "originalPrice",
|
||||||
if (!ruleForm.classValue.length) {
|
disabled: false,
|
||||||
ruleForm.spBizType = 99;
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
label: "库存",
|
||||||
|
prop: "quantity",
|
||||||
|
params: "quantity",
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
label: "成色",
|
||||||
|
prop: "stuffStatus",
|
||||||
|
params: "stuffStatus",
|
||||||
|
disabled: true,
|
||||||
|
options: qualityData.value,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const changeClass = (e) => {
|
||||||
|
console.log(e);
|
||||||
|
if (!ruleForm.value.classValue.length) {
|
||||||
|
ruleForm.value.spBizType = 99;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
e == "24"
|
e == "24"
|
||||||
? (ruleForm.spBizType = "99")
|
? (ruleForm.value.spBizType = "99")
|
||||||
: (ruleForm.spBizType = ruleForm.classValue[0]);
|
: (ruleForm.value.spBizType = ruleForm.value.classValue[0]);
|
||||||
},
|
};
|
||||||
options: [
|
const changeSellType = () => {
|
||||||
{
|
|
||||||
label: "闲鱼特卖",
|
|
||||||
value: "24",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "普通商品",
|
|
||||||
value: "2",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
radio_group_sell: {
|
|
||||||
type: "el-radio-group",
|
|
||||||
label: "特卖类型",
|
|
||||||
params: "tag",
|
|
||||||
prop: "tag",
|
|
||||||
loading: false,
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
label: "临期",
|
|
||||||
value: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "孤品",
|
|
||||||
value: 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "断码",
|
|
||||||
value: 3,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "微瑕",
|
|
||||||
value: 4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "尾货",
|
|
||||||
value: 5,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "官翻",
|
|
||||||
value: 6,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "全新",
|
|
||||||
value: 7,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "福袋",
|
|
||||||
value: 8,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "其他",
|
|
||||||
value: 9,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
change: () => {
|
|
||||||
getGoodsType().then((res) => {
|
getGoodsType().then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
information.goods_class.options = res.data;
|
information.goods_class.options = res.data;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
};
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const information = reactive({
|
const information = reactive({
|
||||||
title: "基本信息",
|
title: "基本信息",
|
||||||
goods_class: {
|
goods_class: {
|
||||||
|
@ -778,28 +780,33 @@ const information = reactive({
|
||||||
options: [],
|
options: [],
|
||||||
visibleChange: (isshow) => {
|
visibleChange: (isshow) => {
|
||||||
if (isshow) return;
|
if (isshow) return;
|
||||||
ruleForm.itemBizType == "24"
|
ruleForm.value.itemBizType == 24
|
||||||
? (ruleForm.spBizType = "99")
|
? (ruleForm.value.spBizType = "99")
|
||||||
: (ruleForm.spBizType = ruleForm.classValue[0]);
|
: (ruleForm.value.spBizType = ruleForm.value.classValue[0]);
|
||||||
ruleForm.channelCatId = ruleForm.classValue[2];
|
ruleForm.value.channelCatId = ruleForm.value.classValue[2];
|
||||||
ruleForm.categoryId = ruleForm.classValue[1];
|
ruleForm.value.categoryId = ruleForm.value.classValue[1];
|
||||||
information.goods_class.loading = true;
|
information.goods_class.loading = true;
|
||||||
information.goods_class.show = true;
|
information.goods_class.show = true;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
getGoodsInfo(`${ruleForm.classValue[2]}`)
|
getGoodsInfo(`${ruleForm.value.classValue[2]}`)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
information.goods_class.loading = false;
|
information.goods_class.loading = false;
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
let new_data = Object.assign([], res.data);
|
let new_data = Object.assign([], res.data);
|
||||||
ruleForm.pvListDtoList = [];
|
routerParams
|
||||||
|
? (ruleForm.value.pvListDtoList = routerParams.pvListDtoList)
|
||||||
|
: (ruleForm.value.pvListDtoList = []);
|
||||||
information.goods_attribute.group = [];
|
information.goods_attribute.group = [];
|
||||||
new_data.map((item) => {
|
new_data.map((item) => {
|
||||||
ruleForm.pvListDtoList.push({
|
if (!routerParams) {
|
||||||
|
ruleForm.value.pvListDtoList.push({
|
||||||
propertyId: "",
|
propertyId: "",
|
||||||
propertyName: "",
|
propertyName: "",
|
||||||
valueId: "",
|
valueId: "",
|
||||||
valueName: "",
|
valueName: "",
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
item.child = item.child.map((e) => {
|
item.child = item.child.map((e) => {
|
||||||
return {
|
return {
|
||||||
value: e.property_name,
|
value: e.property_name,
|
||||||
|
@ -825,10 +832,8 @@ const information = reactive({
|
||||||
}, 500 * Math.random());
|
}, 500 * Math.random());
|
||||||
},
|
},
|
||||||
handleSelect: (item, el, index) => {
|
handleSelect: (item, el, index) => {
|
||||||
console.log(item, "itemtemtekte");
|
|
||||||
|
|
||||||
const pvlistdto = item.options.find((e) => e.link == el);
|
const pvlistdto = item.options.find((e) => e.link == el);
|
||||||
ruleForm.pvListDtoList[index] = {
|
ruleForm.value.pvListDtoList[index] = {
|
||||||
propertyId: item.propertyId,
|
propertyId: item.propertyId,
|
||||||
propertyName: item.label,
|
propertyName: item.label,
|
||||||
valueId: pvlistdto.link,
|
valueId: pvlistdto.link,
|
||||||
|
@ -846,7 +851,6 @@ const information = reactive({
|
||||||
information.goods_class.show = false;
|
information.goods_class.show = false;
|
||||||
});
|
});
|
||||||
}, 500);
|
}, 500);
|
||||||
console.log(ruleForm, "ruleform");
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
goods_attribute: {
|
goods_attribute: {
|
||||||
|
@ -880,27 +884,42 @@ const goodsInfo = reactive({
|
||||||
onSuccessFiles: (filelist) => {
|
onSuccessFiles: (filelist) => {
|
||||||
uploadImage({
|
uploadImage({
|
||||||
filekey: "files",
|
filekey: "files",
|
||||||
xyShopId: ruleForm.xyShopId,
|
xyShopId: ruleForm.value.xyShopId,
|
||||||
files: filelist,
|
files: filelist,
|
||||||
}).then((res) => {
|
})
|
||||||
|
.then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ruleForm.xyImages = res.data.xy; //闲鱼图片集合
|
if (!routerParams) {
|
||||||
ruleForm.aliImages = res.data.ali; //阿里图片集合
|
ruleForm.value.xyImages = res.data.xy; //闲鱼图片集合
|
||||||
|
ruleForm.value.aliImages = res.data.ali; //阿里图片集合
|
||||||
|
} else {
|
||||||
|
ruleForm.value.xyImages = [
|
||||||
|
...ruleForm.value.xyImages,
|
||||||
|
...res.data.xy,
|
||||||
|
];
|
||||||
|
ruleForm.value.aliImages = [
|
||||||
|
...ruleForm.value.aliImages,
|
||||||
|
...res.data.ali,
|
||||||
|
];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ElMessage.warning(res.msg);
|
ElMessage.warning(res.msg);
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
ElMessage.error("上传失败");
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleRemove: (filelist) => {
|
handleRemove: (filelist) => {
|
||||||
if (!ruleForm.aliImages.length) return;
|
if (!ruleForm.value.aliImages.length) return;
|
||||||
const nameToFind = filelist[0].name;
|
const nameToFind = filelist[0].name;
|
||||||
const index = ruleForm.aliImages.findIndex((url) => {
|
const index = ruleForm.value.aliImages.findIndex((url) => {
|
||||||
const urlParts = url.split("/");
|
const urlParts = url.split("/");
|
||||||
const filename = urlParts[urlParts.length - 1];
|
const filename = urlParts[urlParts.length - 1];
|
||||||
return filename.includes(nameToFind);
|
return filename.includes(nameToFind);
|
||||||
});
|
});
|
||||||
ruleForm.aliImages.splice(index, 1);
|
ruleForm.value.aliImages.splice(index, 1);
|
||||||
ruleForm.xyImages.splice(index, 1);
|
ruleForm.value.xyImages.splice(index, 1);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
White_src: {
|
White_src: {
|
||||||
|
@ -914,16 +933,17 @@ const goodsInfo = reactive({
|
||||||
onSuccessFiles: (filelist) => {
|
onSuccessFiles: (filelist) => {
|
||||||
uploadImage({
|
uploadImage({
|
||||||
filekey: "files",
|
filekey: "files",
|
||||||
xyShopId: ruleForm.xyShopId,
|
xyShopId: ruleForm.value.xyShopId,
|
||||||
files: filelist,
|
files: filelist,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ruleForm.whiteBgImage = res.data.xy[0];
|
ruleForm.value.whiteBgImage = res.data.xy[0];
|
||||||
|
ruleForm.value.whiteAliImage = res.data.ali[0];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleRemove: () => {
|
handleRemove: () => {
|
||||||
ruleForm.whiteBgImage = "";
|
ruleForm.value.whiteBgImage = "";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Deliver_location: {
|
Deliver_location: {
|
||||||
|
@ -935,7 +955,8 @@ const goodsInfo = reactive({
|
||||||
options: [],
|
options: [],
|
||||||
visibleChange: (e) => {
|
visibleChange: (e) => {
|
||||||
if (e) return;
|
if (e) return;
|
||||||
ruleForm.divisionId = goodsInfo.Deliver_location.params.slice(-1)[0];
|
ruleForm.value.divisionId =
|
||||||
|
goodsInfo.Deliver_location.params.slice(-1)[0];
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -993,29 +1014,29 @@ const logistics = reactive({
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: "包邮",
|
label: "包邮",
|
||||||
value: "1",
|
value: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "统一运费",
|
label: "统一运费",
|
||||||
value: "2",
|
value: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "运费模板",
|
label: "运费模板",
|
||||||
value: "3",
|
value: 3,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
change: () => {},
|
change: () => {},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const bidStep = (rule, value, callback) => {
|
const bidStep = (rule, value, callback) => {
|
||||||
if (ruleForm.bidDto.bidStep === "") {
|
if (ruleForm.value.bidDto.bidStep === "") {
|
||||||
callback(new Error("出价幅度,不能为空"));
|
callback(new Error("出价幅度,不能为空"));
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const bidBail = (rule, value, callback) => {
|
const bidBail = (rule, value, callback) => {
|
||||||
if (ruleForm.bidDto.bidBail === "") {
|
if (ruleForm.value.bidDto.bidBail === "") {
|
||||||
callback(new Error("保证金,不能为空"));
|
callback(new Error("保证金,不能为空"));
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
|
@ -1067,7 +1088,7 @@ const add_xyShop = () => {
|
||||||
};
|
};
|
||||||
//选择店铺
|
//选择店铺
|
||||||
const select_store = (item) => {
|
const select_store = (item) => {
|
||||||
ruleForm.xyShopId = item.id;
|
ruleForm.value.xyShopId = item.id;
|
||||||
};
|
};
|
||||||
|
|
||||||
const newDataList = ref([]);
|
const newDataList = ref([]);
|
||||||
|
@ -1078,7 +1099,6 @@ const specificationSubmit = (row) => {
|
||||||
priceList.specification_arr = deepClone(row);
|
priceList.specification_arr = deepClone(row);
|
||||||
const specification_list = [];
|
const specification_list = [];
|
||||||
const tabelList = [];
|
const tabelList = [];
|
||||||
|
|
||||||
priceList.fixPrice = [
|
priceList.fixPrice = [
|
||||||
{
|
{
|
||||||
type: "edit",
|
type: "edit",
|
||||||
|
@ -1172,7 +1192,7 @@ const specificationSubmit = (row) => {
|
||||||
params: "inventory",
|
params: "inventory",
|
||||||
keydown: (e, data, el) => {
|
keydown: (e, data, el) => {
|
||||||
if (e.key !== "Enter") return;
|
if (e.key !== "Enter") return;
|
||||||
if (data.tableData.every((item) => !item.price)) {
|
if (data.tableData.every((item) => !item.inventory)) {
|
||||||
data.tableData.forEach((item) => {
|
data.tableData.forEach((item) => {
|
||||||
item.inventory = el.search;
|
item.inventory = el.search;
|
||||||
});
|
});
|
||||||
|
@ -1202,7 +1222,7 @@ const specificationSubmit = (row) => {
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
row.forEach((item) => {
|
row.forEach((item) => {
|
||||||
specification_list.push({ key: item.label, value: item.valueGrop });
|
specification_list.push({ key: item.label, value: item.valueGroup });
|
||||||
|
|
||||||
tabelList.push({
|
tabelList.push({
|
||||||
label: item.label,
|
label: item.label,
|
||||||
|
@ -1257,6 +1277,7 @@ const specificationSubmit = (row) => {
|
||||||
if (item.type === "edit") {
|
if (item.type === "edit") {
|
||||||
item.specification_list = specification_list;
|
item.specification_list = specification_list;
|
||||||
} else if (item.type === "el-table") {
|
} else if (item.type === "el-table") {
|
||||||
|
console.log(item.tabelList, "fsdfdsfsd");
|
||||||
item.tabelList = [...tabelList, ...item.tabelList];
|
item.tabelList = [...tabelList, ...item.tabelList];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1265,7 +1286,7 @@ const specificationSubmit = (row) => {
|
||||||
|
|
||||||
const get_filters = (arr) => {
|
const get_filters = (arr) => {
|
||||||
let filters = [];
|
let filters = [];
|
||||||
arr.valueGrop.map((e) => {
|
arr.valueGroup.map((e) => {
|
||||||
filters.push({ label: e.label, value: e.label });
|
filters.push({ label: e.label, value: e.label });
|
||||||
});
|
});
|
||||||
return filters;
|
return filters;
|
||||||
|
@ -1280,7 +1301,7 @@ const generateCombinations = (attributeGroups) => {
|
||||||
}
|
}
|
||||||
// 遍历当前属性组的所有值
|
// 遍历当前属性组的所有值
|
||||||
const group = attributeGroups[index];
|
const group = attributeGroups[index];
|
||||||
group.valueGrop.forEach((value) => {
|
group.valueGroup.forEach((value) => {
|
||||||
// 递归调用,将当前值添加到当前组合中,并继续到下一个属性组
|
// 递归调用,将当前值添加到当前组合中,并继续到下一个属性组
|
||||||
generate(index + 1, {
|
generate(index + 1, {
|
||||||
...current,
|
...current,
|
||||||
|
@ -1311,7 +1332,7 @@ const get_shopInfo = () => {
|
||||||
const get_region = () => {
|
const get_region = () => {
|
||||||
address_default(1).then((res) => {
|
address_default(1).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ruleForm.divisionId = res.data.district_id;
|
ruleForm.value.divisionId = res.data.district_id;
|
||||||
goodsInfo.Deliver_location.params = [
|
goodsInfo.Deliver_location.params = [
|
||||||
res.data.province_id,
|
res.data.province_id,
|
||||||
res.data.city_id,
|
res.data.city_id,
|
||||||
|
@ -1337,6 +1358,7 @@ const get_region = () => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
//获取机器成色
|
//获取机器成色
|
||||||
const get_qualityList = () => {
|
const get_qualityList = () => {
|
||||||
qualityList().then((res) => {
|
qualityList().then((res) => {
|
||||||
|
@ -1366,9 +1388,11 @@ const publish = (formRef) => {
|
||||||
dataList.tableData,
|
dataList.tableData,
|
||||||
dataList.tabelList
|
dataList.tabelList
|
||||||
);
|
);
|
||||||
ruleForm.skuList = ruleFormSkuList;
|
ruleForm.value.skuList = ruleFormSkuList;
|
||||||
}
|
}
|
||||||
publish_shelve(ruleForm).then((res) => {
|
ruleForm.value.flag = "1";
|
||||||
|
ruleform.value.republishId='';
|
||||||
|
publish_shelve(ruleForm.value).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ElMessage.success(res.msg);
|
ElMessage.success(res.msg);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1386,9 +1410,7 @@ function generateSkuList(array1, array2) {
|
||||||
property: [], // 初始化销售属性数组
|
property: [], // 初始化销售属性数组
|
||||||
};
|
};
|
||||||
array2.forEach((item) => {
|
array2.forEach((item) => {
|
||||||
console.log(item, "item,");
|
|
||||||
let value = skuVariant[item.params];
|
let value = skuVariant[item.params];
|
||||||
console.log(value, "value", skuVariant, "skuVariant");
|
|
||||||
sku.quantity = skuVariant.inventory;
|
sku.quantity = skuVariant.inventory;
|
||||||
sku.price = skuVariant.price;
|
sku.price = skuVariant.price;
|
||||||
if (
|
if (
|
||||||
|
@ -1404,59 +1426,85 @@ function generateSkuList(array1, array2) {
|
||||||
|
|
||||||
return skuList;
|
return skuList;
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
const transformSkuList = (skuList) => {
|
||||||
if (route.query.params) {
|
// 创建一个对象来存储独特的属性及其值
|
||||||
let params = JSON.parse(route.query.params);
|
const uniqueProperties = {};
|
||||||
// console.log(params,"praaafsdf");
|
|
||||||
// ruleForm = {
|
// 遍历 skuList,填充 uniqueProperties
|
||||||
// bidDate: [],
|
skuList.forEach((sku) => {
|
||||||
// auctionType: params.auctionType, //商品类型
|
sku.propertyList.forEach((prop) => {
|
||||||
// itemBizType: params.itemBizType, //商品业务类型 0 已验货不入仓,1 已验货入仓,2 普通商品 特卖固定24
|
if (!uniqueProperties[prop.propertyText]) {
|
||||||
// flashSaleDO: {
|
uniqueProperties[prop.propertyText] = new Set();
|
||||||
// tag: params.flashSaleType,
|
|
||||||
// foodProDate: "", //选择临期类型必传 - 食品生产日期
|
|
||||||
// foodExpireDate: "", //选择临期类型必传 - 食品过期日期
|
|
||||||
// }, //特卖类型
|
|
||||||
// xyShopId: "",
|
|
||||||
// channelCatId: "", //最后一层分类id
|
|
||||||
// classValue: [],
|
|
||||||
// spBizType: "99", //特卖固定99 已验货业务场景下(手机:1, 潮品:2, 家电:3, 乐器:8, 3C数码:9, 奢品:16, 母婴:17, 美妆:18, 文玩/珠宝:19, 潮玩:20, 家居:21)
|
|
||||||
// pvListDtoList: [],
|
|
||||||
// title: "", //商品标题
|
|
||||||
// desc: "", //商品描述
|
|
||||||
// reservePrice: "", //商品售价
|
|
||||||
// originalPrice: "", //商品原价
|
|
||||||
// stuffStatus: "", // 商品成色
|
|
||||||
// divisionId: "", //发货地取最后一级
|
|
||||||
// categoryId: 0, //商品类目Id,手机: 50025386(long型,一般8~10位)
|
|
||||||
// bidDto: {
|
|
||||||
// bidBail: "", //保证金金额,单位分
|
|
||||||
// bidStep: "", //出价幅度,单位分
|
|
||||||
// bidEndTime: "", //拍卖结束时间戳,单位毫秒
|
|
||||||
// bidStartTime: "", // 拍卖起拍时间戳,单位毫秒
|
|
||||||
// }, //拍卖
|
|
||||||
// quantity: 1, //库存
|
|
||||||
// skuList: [
|
|
||||||
// {
|
|
||||||
// quantity: 0, //库存
|
|
||||||
// price: 0, //价格
|
|
||||||
// property: [{ key: "", value: "" }], //销售属性
|
|
||||||
// },
|
|
||||||
// ],
|
|
||||||
// xyImages: [], //闲鱼图片集合
|
|
||||||
// aliImages: [], //阿里图片集合
|
|
||||||
// whiteBgImage: "", // 白底图(闲鱼)
|
|
||||||
// flag: "1", //草稿箱-0 发布-1
|
|
||||||
// republishId: 0, //重新发布的商品id
|
|
||||||
// logistics: "1", //物流配置 1包邮 2统一运费 bidStep
|
|
||||||
// transportFee: "", // 物流配置选择2统一运费时传递
|
|
||||||
// templateId: 0, // 物流配置选择3运费模板时候传递
|
|
||||||
// };
|
|
||||||
}
|
}
|
||||||
|
uniqueProperties[prop.propertyText].add(prop.valueText);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// 转换 uniqueProperties 为所需的输出格式
|
||||||
|
let index = 1;
|
||||||
|
const result = [];
|
||||||
|
for (const [propertyText, values] of Object.entries(uniqueProperties)) {
|
||||||
|
result.push({
|
||||||
|
label: propertyText,
|
||||||
|
num: values.size, // 使用 Set 的 size 属性来获取唯一值的数量
|
||||||
|
index: index++, // 这里假设所有属性的 index 都是 1,或者你可以根据需要计算它
|
||||||
|
disabled: false,
|
||||||
|
buttonGroup: [
|
||||||
|
{ type: "primary", label: "编辑" },
|
||||||
|
{ type: "danger", label: "删除" },
|
||||||
|
],
|
||||||
|
inputGroup: {
|
||||||
|
valueName: "",
|
||||||
|
placeholder: "请输入规格属性,按回车健确认",
|
||||||
|
},
|
||||||
|
valueGroup: Array.from(values).map((valueText) => ({
|
||||||
|
type: "danger",
|
||||||
|
label: valueText,
|
||||||
|
})),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
get_shopInfo();
|
get_shopInfo();
|
||||||
get_region();
|
get_region();
|
||||||
get_qualityList();
|
get_qualityList();
|
||||||
createGoods.radio_group_sell.change();
|
changeSellType();
|
||||||
|
if (route.query.params) {
|
||||||
|
try {
|
||||||
|
routerParams = JSON.parse(route.query.params);
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
console.log(routerParams, "params");
|
||||||
|
if (routerParams.classValue && routerParams.classValue.length) {
|
||||||
|
routerParams.classValue[0] = Number(routerParams.classValue[0]);
|
||||||
|
routerParams.classValue[1] = Number(routerParams.classValue[1]);
|
||||||
|
}
|
||||||
|
routerParams.logistics = Number(routerParams.logistics);
|
||||||
|
|
||||||
|
routerParams.aliImages.map((e) => {
|
||||||
|
goodsInfo.more_src.fileImgList.push({ url: e });
|
||||||
|
});
|
||||||
|
if (routerParams.whiteAliImage) {
|
||||||
|
goodsInfo.White_src.fileImgList.push({ url: routerParams.whiteAliImage });
|
||||||
|
}
|
||||||
|
if (routerParams.skuList && routerParams.skuList.length) {
|
||||||
|
let row = transformSkuList(routerParams.skuList);
|
||||||
|
specificationSubmit(row);
|
||||||
|
console.log(priceList.fixPrice.find((e) => e.label == "销售规格").tableData);
|
||||||
|
priceList.fixPrice.find((e) => e.label == "销售规格").tableData.forEach((item,index)=>{
|
||||||
|
item.price=routerParams.skuList[index].price
|
||||||
|
item.inventory=routerParams.skuList[index].quantity
|
||||||
|
})
|
||||||
|
priceList.fixPrice.find((e) => e.label == "销售规格").new_tableData.forEach((item,index)=>{
|
||||||
|
item.price=routerParams.skuList[index].price
|
||||||
|
item.inventory=routerParams.skuList[index].quantity
|
||||||
|
})
|
||||||
|
}
|
||||||
|
ruleForm.value = routerParams;
|
||||||
|
information.goods_class.visibleChange(false);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1545,6 +1593,7 @@ onMounted(() => {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
font-size: 14px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin: 5px 10px 5px 0;
|
margin: 5px 10px 5px 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -1563,7 +1612,6 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.create_shop {
|
.create_shop {
|
||||||
width: 135px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
border: 1px dashed #409eff;
|
border: 1px dashed #409eff;
|
||||||
color: #409eff;
|
color: #409eff;
|
||||||
|
@ -1633,6 +1681,7 @@ onMounted(() => {
|
||||||
line-height: 80px;
|
line-height: 80px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding: 0 40px;
|
padding: 0 40px;
|
||||||
|
box-sizing: border-box;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1648,3 +1697,14 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,803 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="box">
|
|
||||||
<div style="padding:10px 20px">
|
|
||||||
<div class="formContainer">
|
|
||||||
<div >
|
|
||||||
<h4 class="leftBox" style="margin-left: 10px;">运营数据</h4>
|
|
||||||
</div>
|
|
||||||
<div class="righrContainer">
|
|
||||||
|
|
||||||
<el-select size="small" v-model="data.form.region" :style="{width:'120px'}" placeholder="全部店铺" clearable @change="seleteChange">
|
|
||||||
<el-option v-for="item in data.accountData" :key="item.account_config_id" :label="item.account" :value="item.account_config_id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
<div class="rightBox">
|
|
||||||
<el-radio-group v-model="data.radio1" size="small" @change="tableTimeChange">
|
|
||||||
<el-radio-button label="今日"></el-radio-button>
|
|
||||||
<el-radio-button label="本月"></el-radio-button>
|
|
||||||
<el-radio-button label="自定义"></el-radio-button>
|
|
||||||
</el-radio-group>
|
|
||||||
<div class="righttime">
|
|
||||||
<el-date-picker
|
|
||||||
v-if="data.radio1 == '自定义'"
|
|
||||||
v-model="data.transactionDataTime1"
|
|
||||||
type="datetimerange"
|
|
||||||
range-separator="至"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
size="small"
|
|
||||||
@change="transactionchange1"
|
|
||||||
:value-format="'X'"
|
|
||||||
format="YYYY-MM-DD"
|
|
||||||
:default-time="[
|
|
||||||
new Date(0, 0, 0, 0, 0, 0),
|
|
||||||
new Date(0, 0, 0, 23, 59, 59)
|
|
||||||
]"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="header" v-loading="data.headerLoading">
|
|
||||||
<div class="right">
|
|
||||||
<div class="top">
|
|
||||||
<div class="one">
|
|
||||||
<p>运营收入 (元)</p>
|
|
||||||
<p style="color:red;font-size:18px;margin:10px 0">{{data.operateData.operating_income}}</p>
|
|
||||||
</div>
|
|
||||||
<div class="one" >
|
|
||||||
<div>新增上架数量</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">{{data.operateData.today_shelf_num}}</div>
|
|
||||||
<!-- <div v-if="data.radio1 != '自定义'">{{data.radio1 == "今日" ? "昨日" : data.radio1 == "本月" ? "上月" : ''}} {{data.operateYesterData.today_shelf_num}}</div> -->
|
|
||||||
</div>
|
|
||||||
<div class="one">
|
|
||||||
<div>待审核数量</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">{{data.operateData.wait_examine_num}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="one">
|
|
||||||
<div>在架数量</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">{{data.operateData.on_shelf_num}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="one">
|
|
||||||
<div>待发货</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">{{data.operateData.wait_deliver_goods_num}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="one">
|
|
||||||
<div>待售后</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">{{data.operateData.wait_sale_after_num}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bottom">
|
|
||||||
<div class="two salesNum" style="display:flex;padding:10px 10px">
|
|
||||||
<div style="margin-right:105px">
|
|
||||||
<div>销售数量</div>
|
|
||||||
<div style="font-size:18px;margin:9px 0">{{data.salesInfo.sales_num}}</div>
|
|
||||||
<div v-if="data.radio1 != '自定义'">{{data.radio1 == "今日" ? "昨日" : data.radio1 == "本月" ? "上月" : ''}} {{data.yrsterSalesInfo.sales_num}}</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<p>销售金额 (元)</p>
|
|
||||||
<p style="color:red;font-size:18px">{{ isNaN(Number(data.salesInfo.payment)) ? 0 : Number(data.salesInfo.payment)}}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="two refundsNum" style="display:flex;padding:10px 10px" >
|
|
||||||
<div style="margin-right:105px">
|
|
||||||
<div>退货数量</div>
|
|
||||||
<div style="font-size:18px;margin:9px 0">{{data.refundsInfo.refunds_num}}</div>
|
|
||||||
<div v-if="data.radio1 != '自定义'">{{data.radio1 == "今日" ? "昨日" : data.radio1 == "本月" ? "上月" : ''}} {{data.yrsterSalesInfo.sales_num}}</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<p>退货率</p>
|
|
||||||
<p style="color:red;font-size:18px">
|
|
||||||
{{
|
|
||||||
isNaN(Number(data.salesInfo.sales_num)) || isNaN(Number(data.refundsInfo.refunds_num))
|
|
||||||
? 0
|
|
||||||
: Number(data.salesInfo.sales_num) === 0 || Number(data.refundsInfo.refunds_num) === 0
|
|
||||||
? '0'
|
|
||||||
: (Number(data.refundsInfo.refunds_num) / Number(data.salesInfo.sales_num) * 100).toFixed(2) + '%'
|
|
||||||
}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="two payment" style="padding:10px 10px">
|
|
||||||
<div>客单价 (元)</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">{{ isNaN(Number(data.salesInfo.payment) / Number(data.salesInfo.sales_num)) ? 0 : (Number(data.salesInfo.payment) / Number(data.salesInfo.sales_num)).toFixed(2) }}</div>
|
|
||||||
<div v-if="data.radio1 != '自定义'">{{data.radio1 == "今日" ? "昨日" :data.radio1 == "本月" ? "上月" : ''}} {{ isNaN( Number(data.yrsterSalesInfo.payment) / Number(data.yrsterSalesInfo.sales_num)) ? 0 : (Number(data.yrsterSalesInfo.payment) / Number(data.yrsterSalesInfo.sales_num)).toFixed(2) }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="two turnover" style="padding:10px 10px" >
|
|
||||||
<div>动销率</div>
|
|
||||||
<div style="font-size:18px;margin:10px 0">
|
|
||||||
{{ isNaN(Number(data.salesInfo.sales_num) / Number(data.operateData.on_shelf_num)) ? 0 : (Number(data.salesInfo.sales_num) / Number(data.operateData.on_shelf_num) * 100).toFixed(2) + '%'
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="data.radio1 != '自定义'">{{data.radio1 == "今日" ? "昨日" : data.radio1 == "本月" ? "上月" : ''}} {{ isNaN(Number(data.yrsterSalesInfo.sales_num) / Number(data.operateYesterData.on_shelf_num)) ? 0 : (Number(data.yrsterSalesInfo.sales_num) / Number(data.operateYesterData.on_shelf_num ) * 100).toFixed(2) + '%'}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- 表格 -->
|
|
||||||
<div class="bottomContainer">
|
|
||||||
<div class="center" style="display:flex;justify-content: space-between;margin: 20px 0">
|
|
||||||
<div class="left" style="font-size:16px;font-weight:600">
|
|
||||||
<span style="margin-right:5px">本页数据:</span>
|
|
||||||
<span style="margin-right:5px">共{{data.numberAll}}家</span>
|
|
||||||
<span style="margin-right:5px">今日上架{{data.operateData.on_shelf_num}}台</span>
|
|
||||||
<span style="margin-right:5px">今日售出{{data.operateData.wait_deliver_goods_num}}台</span>
|
|
||||||
<span style="margin-right:5px">销售金额{{ salesPayment }}元 客单价 {{ isNaN(Number(data.salesInfo.payment) / Number(data.salesInfo.sales_num)) ? 0 : (Number(data.salesInfo.payment) / Number(data.salesInfo.sales_num)).toFixed(2) }} 元</span>
|
|
||||||
</div>
|
|
||||||
<div class="right" style="margin-left:20px">
|
|
||||||
<el-button
|
|
||||||
class="custom-button"
|
|
||||||
@click="refreshhandler"
|
|
||||||
type="text"
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
<i class="el-icon-refresh" style="font-size: 20px"></i>
|
|
||||||
</el-button>
|
|
||||||
<el-button
|
|
||||||
class="custom-button"
|
|
||||||
type="text"
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
<i class="el-icon-upload2" style="font-size: 20px"></i>
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bottomBox">
|
|
||||||
<div class="footer" style="display:flex;justify-content: space-between;margin-top:10px">
|
|
||||||
<div class="zhandian">
|
|
||||||
<el-form ref="formRef" :model="data.form" style="display:flex">
|
|
||||||
<el-form-item>
|
|
||||||
<el-select size="small" v-model="data.form.region1" style="margin-left:10px;min-width:120px" placeholder="全部用户" clearable @change="seleteChange2">
|
|
||||||
<el-option v-for="item in data.serviceList" :key="item.p_user_id" :label="item.username" :value="item.p_user_id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-select size="small" v-model="data.form.region2" style="margin-left:10px;min-width:120px" clearable placeholder="全部店铺" @change="seleteChange3">
|
|
||||||
<el-option v-for="item in data.accountData" :key="item.account_config_id" :label="item.account" :value="item.account_config_id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item style="margin-left:10px">
|
|
||||||
<el-button size="small" type="primary" @click="search">查询</el-button>
|
|
||||||
<el-button size="small" type="danger" @click="resetData">重置</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
<div class="time">
|
|
||||||
<div class="rightBottomBox">
|
|
||||||
<el-radio-group v-model="data.radio2" size="small" @change="tableTimeChange2">
|
|
||||||
<el-radio-button label="今日"></el-radio-button>
|
|
||||||
<el-radio-button label="本月"></el-radio-button>
|
|
||||||
<el-radio-button label="自定义"></el-radio-button>
|
|
||||||
</el-radio-group>
|
|
||||||
<div style="margin-left:10px">
|
|
||||||
<el-date-picker
|
|
||||||
v-if="data.radio2 == '自定义'"
|
|
||||||
v-model="data.transactionDataTime2"
|
|
||||||
type="datetimerange"
|
|
||||||
range-separator="至"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
size="small"
|
|
||||||
@change="transactionchange2"
|
|
||||||
:value-format="'X'"
|
|
||||||
format="YYYY-MM-DD"
|
|
||||||
:default-time="[
|
|
||||||
new Date(0, 0, 0, 0, 0, 0),
|
|
||||||
new Date(0, 0, 0, 23, 59, 59)
|
|
||||||
]"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<vxe-table
|
|
||||||
ref="xTable"
|
|
||||||
:data="newtableData"
|
|
||||||
border
|
|
||||||
:span-method="colspanMethod"
|
|
||||||
:row-config="{ isHover: true }"
|
|
||||||
:loading="data.loading"
|
|
||||||
:fixed="true"
|
|
||||||
:height="height"
|
|
||||||
:header-cell-style="{
|
|
||||||
height: '70px',
|
|
||||||
color: '#606266',
|
|
||||||
'text-align': 'center',
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<vxe-column
|
|
||||||
v-for="(item,index) in data.tableLabel"
|
|
||||||
:key="index"
|
|
||||||
:title="item.label"
|
|
||||||
:field="item.param"
|
|
||||||
:width="item.width"
|
|
||||||
>
|
|
||||||
<template #default="{ row }">
|
|
||||||
<span v-if="row.render" class="topSpan">
|
|
||||||
<span style="margin-left:15px;letter-spacing:0px;">
|
|
||||||
0{{row.index}}
|
|
||||||
</span>
|
|
||||||
<span v-if="row.truename" style="margin-left:50px"><a class="aIcon"><i class="el-icon-user" style="font-size:20px"></i></a>用户名称:{{row.truename}}</span>
|
|
||||||
<span v-if="row.company">公司名称:{{row.company}}</span>
|
|
||||||
<span v-if="row.account" style="margin-left:52px"><a class="aIcon"><i class="el-icon-takeaway-box" style="font-size:20px"></i></a>商户拥有店铺:{{row.account}}</span>
|
|
||||||
</span>
|
|
||||||
<span v-else-if="!row.render">
|
|
||||||
<span v-if="item.label == '销售金额'" class="spanBottom">
|
|
||||||
{{ Number(row.sales_amount) ? Number(row.sales_amount).toFixed(2): 0}}
|
|
||||||
</span>
|
|
||||||
<span v-else-if="item.label == '客单价'" class="spanBottom">
|
|
||||||
{{isNaN(Number(row.sales_amount) / Number(row.sales_num)) ? 0 : (Number(row.sales_amount) / Number(row.sales_num)).toFixed(2)}}
|
|
||||||
</span>
|
|
||||||
<span v-else-if="item.label == '动销率'" class="spanBottom" >{{
|
|
||||||
isNaN(Number(row.sales_num)) || isNaN(Number(row.on_shelf_num))
|
|
||||||
? 0
|
|
||||||
: row.sales_num === 0 || row.on_shelf_num == 0
|
|
||||||
? '0'
|
|
||||||
: (Number(row.sales_num) / Number(row.on_shelf_num) * 100).toFixed(2) + '%'
|
|
||||||
}}</span>
|
|
||||||
|
|
||||||
<span v-else-if="item.label == '退货率'" class="spanBottom">
|
|
||||||
{{
|
|
||||||
isNaN(Number(row.refunds_num)) || isNaN(Number(row.sales_num))
|
|
||||||
? 0
|
|
||||||
: Number(row.refunds_num) === 0 || Number(row.sales_num) === 0
|
|
||||||
? '0'
|
|
||||||
: (Number(row.refunds_num) / Number(row.sales_num) * 100).toFixed(2) + '%'
|
|
||||||
}}
|
|
||||||
</span>
|
|
||||||
<span v-else class="spanBottom">{{ row[item.param] }}</span>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</vxe-column>
|
|
||||||
</vxe-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
import { ElMessage } from "element-plus";
|
|
||||||
import {site_operation_data_statistics,site_operation_data_details,get_site_account,service_provider_list} from "@/api/OperationCenter"
|
|
||||||
import { getToday, getCurrMonthDays, getYesterday ,getLastMonthDays} from '@/utils/timeData';
|
|
||||||
import { computed, reactive,ref,onMounted } from 'vue';
|
|
||||||
|
|
||||||
|
|
||||||
const formRef=ref(null);
|
|
||||||
const data=reactive({
|
|
||||||
radio1: '今日',
|
|
||||||
radio2:'今日',
|
|
||||||
form:{},
|
|
||||||
region:'' ,
|
|
||||||
region1:'',
|
|
||||||
region2:'',
|
|
||||||
formLabelAlign:{},
|
|
||||||
formLabelAlign2:{},
|
|
||||||
operateData:{},
|
|
||||||
transactionDataTime1:[],
|
|
||||||
transactionDataTime2:[],
|
|
||||||
ReconciliationCenterList:[],
|
|
||||||
accountData:[],
|
|
||||||
serviceList:[],
|
|
||||||
tableDate:[],
|
|
||||||
refundsInfo:[],
|
|
||||||
salesInfo:[],
|
|
||||||
yrsterSalesInfo:[],
|
|
||||||
yesterRefundsInfo:[],
|
|
||||||
yesterTime:{},
|
|
||||||
operateYesterData:[],
|
|
||||||
numberAll:0,
|
|
||||||
loading:false,
|
|
||||||
headerLoading:false,
|
|
||||||
tableLabel:[
|
|
||||||
{ label: "新增上架数量", id: 1,param:"today_shelf_num",show:true,align: "center",width: "120",},
|
|
||||||
{ label: "待审核数量", id: 2,param:"wait_examine_num",show:true,align: "center", },
|
|
||||||
{ label: "在架数量", id: 3,param:"on_shelf_num",show:true,align: "center",},
|
|
||||||
{ label: "销售数量", id: 4 ,param:"sales_num",show:true,align: "center",},
|
|
||||||
{ label: "销售金额", id: 5, param:"sales_amount",show:true,align: "center",},
|
|
||||||
{ label: "退货数量", id: 6, param:"refunds_num",show:true,align: "center",},
|
|
||||||
{ label: "退货率", id: 7, param:"refunds_amount",show:true,align: "center",},
|
|
||||||
{ label: "客单价", id: 8, param:"",show:true,align: "center",},
|
|
||||||
{ label: "动销率", id: 9, param:"",show:true,align: "center",},
|
|
||||||
{ label: "待发货", id: 10, param:"wait_deliver_goods_num",show:true,align: "center",},
|
|
||||||
{ label: "待售后", id: 11, param:"wait_sale_after_num",show:true,align: "center",},
|
|
||||||
// { label: "软件服务费", id:12, param:"",show:true,align: "center",},
|
|
||||||
{ label: "运营收入", id:13, param:"operating_income",show:true,align: "center",},
|
|
||||||
// { label: "累计收益", id:14, param:"operating_income",show:true,align: "center",},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
const newtableData=computed(()=>{
|
|
||||||
if (data.tableDate.length == 0) return;
|
|
||||||
let result = [];
|
|
||||||
let truncatedAccount = ''
|
|
||||||
// const arr = this._.cloneDeep(data.tableDate);
|
|
||||||
const arr = JSON.parse(JSON.stringify(data.tableDate));
|
|
||||||
arr.sort((a, b) => b.sales_num - a.sales_num);
|
|
||||||
result = arr.map((item) => [{ ...item }, { ...item }]).flat();
|
|
||||||
result.map((e, i) => {
|
|
||||||
if (e && e.account && e.account.length > 11) {
|
|
||||||
truncatedAccount = e.account.substring(0, 11) + '...';
|
|
||||||
} else {
|
|
||||||
truncatedAccount = e.account;
|
|
||||||
}
|
|
||||||
e.index=i/2 + 1;
|
|
||||||
// this.$set(e, "index", i/2 + 1);
|
|
||||||
if (i % 2 === 0) {
|
|
||||||
e.account=truncatedAccount;
|
|
||||||
e.render=true;
|
|
||||||
e.checked=false;
|
|
||||||
} else {
|
|
||||||
e.render=false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
console.log('--------000',result);
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
|
|
||||||
const tablelabelLen=computed(()=>{
|
|
||||||
let num = 0;
|
|
||||||
data.tableLabel.forEach((item) => {
|
|
||||||
if (item.show) {
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return num;
|
|
||||||
});
|
|
||||||
const height=computed(()=>{
|
|
||||||
let height = "";
|
|
||||||
height = document.documentElement.clientHeight - 180;
|
|
||||||
return height;
|
|
||||||
});
|
|
||||||
const salesPayment = computed(() => {
|
|
||||||
let num = 0;
|
|
||||||
data.tableDate.forEach((item) => {
|
|
||||||
if (item.sales_amount !== undefined && item.sales_amount !== null) {
|
|
||||||
num += Number(item.sales_amount);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return num;
|
|
||||||
});
|
|
||||||
const colspanMethod = ({ _rowIndex, _columnIndex }) => {
|
|
||||||
if (_rowIndex % 2 === 0) {
|
|
||||||
if (_columnIndex === 0) {
|
|
||||||
return { rowspan: 0, colspan: 1 };
|
|
||||||
} else if (_columnIndex === 1) {
|
|
||||||
return { rowspan: 1, colspan: tablelabelLen.value };
|
|
||||||
} else {
|
|
||||||
return { rowspan: 0, colspan: 0 };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
//获取站点运营数据统计
|
|
||||||
const getSiteOperation=()=>{
|
|
||||||
data.headerLoading = true;
|
|
||||||
const obj = {
|
|
||||||
...data.formLabelAlign
|
|
||||||
}
|
|
||||||
site_operation_data_statistics({start_time:obj.start_time,end_time:obj.end_time,account_config_id:obj.account_config_id}).then((res)=>{
|
|
||||||
if(res.errcode==0){
|
|
||||||
data.operateData = res.datas;
|
|
||||||
if(res.datas.refunds_info){
|
|
||||||
data.refundsInfo = res.datas.refunds_info[0]
|
|
||||||
data.salesInfo = res.datas.sales_info[0]
|
|
||||||
}
|
|
||||||
data.headerLoading = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//获取昨日昨月站点运营数据统计
|
|
||||||
const getYesterOperation=()=>{
|
|
||||||
// this.loading = true;
|
|
||||||
const obj = {
|
|
||||||
...data.yesterTime
|
|
||||||
}
|
|
||||||
site_operation_data_statistics({start_time:obj.start_time,end_time:obj.end_time,account_config_id:obj.account_config_id}).then((res)=>{
|
|
||||||
if(res.errcode==0){
|
|
||||||
data.operateYesterData = res.datas;
|
|
||||||
if(res.datas.refunds_info){
|
|
||||||
data.yesterRefundsInfo = res.datas.refunds_info[0];
|
|
||||||
data.yrsterSalesInfo = res.datas.sales_info[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
//时间变化
|
|
||||||
const tableTimeChange=(e)=>{
|
|
||||||
// console.log('-----------------333',e,this.radio1);
|
|
||||||
if (e == '今日' || data.radio1 == '今日') {
|
|
||||||
//获取当天
|
|
||||||
let todaytime = getToday();
|
|
||||||
data.formLabelAlign.start_time = new Date(todaytime.starttime).getTime();
|
|
||||||
data.formLabelAlign.end_time = new Date(todaytime.endtime).getTime();
|
|
||||||
getSiteOperation()
|
|
||||||
yesterTimeChange(e)
|
|
||||||
data.transactionDataTime1 = ''
|
|
||||||
} else if (e == '本月') {
|
|
||||||
let currMonth = getCurrMonthDays();
|
|
||||||
data.formLabelAlign.start_time = new Date(currMonth.starttime).getTime();
|
|
||||||
data.formLabelAlign.end_time = new Date(currMonth.endtime).getTime();
|
|
||||||
getSiteOperation()
|
|
||||||
yesterTimeChange(e)
|
|
||||||
data.transactionDataTime1 = ''
|
|
||||||
} else {
|
|
||||||
data.headerLoading = true;
|
|
||||||
setTimeout(()=>{
|
|
||||||
data.headerLoading = false;
|
|
||||||
},300)
|
|
||||||
};
|
|
||||||
}
|
|
||||||
//获取当日时间
|
|
||||||
const currentTime=()=>{
|
|
||||||
let todaytime = getToday();
|
|
||||||
data.formLabelAlign.start_time = new Date(todaytime.starttime).getTime();
|
|
||||||
data.formLabelAlign.end_time = new Date(todaytime.endtime).getTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取昨天时间
|
|
||||||
const yesterdayTime=()=>{
|
|
||||||
let todaytime = getYesterday();
|
|
||||||
data.yesterTime.start_time = new Date(todaytime.starttime).getTime();
|
|
||||||
data.yesterTime.end_time = new Date(todaytime.endtime).getTime();
|
|
||||||
}
|
|
||||||
|
|
||||||
const yesterTimeChange=(e)=>{
|
|
||||||
if (e == '今日' || data.radio1 == '今日') {
|
|
||||||
//获取当天
|
|
||||||
let todaytime = getYesterday();
|
|
||||||
data.yesterTime.start_time = new Date(todaytime.starttime).getTime();
|
|
||||||
data.yesterTime.end_time = new Date(todaytime.endtime).getTime();
|
|
||||||
getYesterOperation();
|
|
||||||
} else if (e == '本月') {
|
|
||||||
let lastMonth = getLastMonthDays();
|
|
||||||
data.yesterTime.start_time = new Date(lastMonth.starttime).getTime();
|
|
||||||
data.yesterTime.end_time = new Date(lastMonth.endtime).getTime();
|
|
||||||
// console.log('--------66',this.yesterTime);
|
|
||||||
getYesterOperation()
|
|
||||||
} else {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
//交易数据表格自定义时间change
|
|
||||||
const transactionchange1=(e)=>{
|
|
||||||
console.log(e,"111");
|
|
||||||
data.formLabelAlign.start_time = e[0];
|
|
||||||
data.formLabelAlign.end_time = e[1];
|
|
||||||
getSiteOperation();
|
|
||||||
}
|
|
||||||
//获取闲鱼店铺
|
|
||||||
const getSiteAccount=()=>{
|
|
||||||
get_site_account().then(res=>{
|
|
||||||
data.accountData = res.datas
|
|
||||||
// console.log('----------222',this.accountData);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const serviceProvide=()=>{
|
|
||||||
service_provider_list().then(res=>{
|
|
||||||
if(res.errcode==0){
|
|
||||||
data.serviceList = res.datas;
|
|
||||||
}else{
|
|
||||||
ElMessage(res.msg)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
const seleteChange=(val)=>{
|
|
||||||
data.formLabelAlign.account_config_id = val
|
|
||||||
data.yesterTime.account_config_id = val
|
|
||||||
getSiteOperation()
|
|
||||||
getYesterOperation()
|
|
||||||
}
|
|
||||||
|
|
||||||
const siteOperationDetails=()=>{
|
|
||||||
data.loading = true;
|
|
||||||
const obj = {
|
|
||||||
...data.formLabelAlign2
|
|
||||||
}
|
|
||||||
site_operation_data_details({start_time:obj.start_time,end_time:obj.end_time,account_config_id:obj.account_config_id,p_user_id:obj.p_user_id}).then(res=>{
|
|
||||||
if(res.errcode==0){
|
|
||||||
console.log(res.datas);
|
|
||||||
data.tableDate = res.datas
|
|
||||||
data.numberAll = res.datas.length
|
|
||||||
// console.log('------------333',this.tableDate);
|
|
||||||
data.loading = false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const search=()=>{
|
|
||||||
siteOperationDetails()
|
|
||||||
}
|
|
||||||
|
|
||||||
//时间变化
|
|
||||||
const tableTimeChange2=(e)=>{
|
|
||||||
// console.log('-----------------333',e,this.radio1);
|
|
||||||
if (e == '今日' || data.radio2 == '今日') {
|
|
||||||
//获取当天
|
|
||||||
let todaytime = getToday();
|
|
||||||
data.formLabelAlign2.start_time = new Date(todaytime.starttime).getTime();
|
|
||||||
data.formLabelAlign2.end_time = new Date(todaytime.endtime).getTime();
|
|
||||||
siteOperationDetails()
|
|
||||||
data.transactionDataTime2 = '';
|
|
||||||
} else if (e == '本月') {
|
|
||||||
let currMonth = getCurrMonthDays();
|
|
||||||
data.formLabelAlign2.start_time = new Date(currMonth.starttime).getTime();
|
|
||||||
data.formLabelAlign2.end_time = new Date(currMonth.endtime).getTime();
|
|
||||||
siteOperationDetails()
|
|
||||||
data.transactionDataTime2 = '';
|
|
||||||
} else {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
//获取当日时间
|
|
||||||
const currentTime2=()=>{
|
|
||||||
let todaytime = getToday();
|
|
||||||
data.formLabelAlign2.start_time = new Date(todaytime.starttime).getTime();
|
|
||||||
data.formLabelAlign2.end_time = new Date(todaytime.endtime).getTime();
|
|
||||||
}
|
|
||||||
//交易数据表格自定义时间change
|
|
||||||
const transactionchange2=(e)=>{
|
|
||||||
data.formLabelAlign2.start_time = e[0];
|
|
||||||
data.formLabelAlign2.end_time = e[1];
|
|
||||||
siteOperationDetails();
|
|
||||||
}
|
|
||||||
const seleteChange2=(val)=>{
|
|
||||||
data.formLabelAlign2.p_user_id = val
|
|
||||||
}
|
|
||||||
const seleteChange3=(val)=>{
|
|
||||||
data.formLabelAlign2.account_config_id = val
|
|
||||||
}
|
|
||||||
const resetData=()=>{
|
|
||||||
data.formLabelAlign2 = {},
|
|
||||||
data.form.region1 = ''
|
|
||||||
data.form.region2 = ''
|
|
||||||
data.radio2 = '今日'
|
|
||||||
currentTime2()
|
|
||||||
siteOperationDetails()
|
|
||||||
}
|
|
||||||
//点击刷新数据
|
|
||||||
const refreshhandler=()=>{
|
|
||||||
resetData()
|
|
||||||
}
|
|
||||||
|
|
||||||
currentTime()
|
|
||||||
currentTime2()
|
|
||||||
getSiteOperation()
|
|
||||||
getSiteAccount()
|
|
||||||
serviceProvide()
|
|
||||||
siteOperationDetails()
|
|
||||||
yesterdayTime()
|
|
||||||
getYesterOperation()
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.iconjingshi div {
|
|
||||||
display: none; /*默认隐藏*/
|
|
||||||
}
|
|
||||||
|
|
||||||
.iconjingshi:hover div {
|
|
||||||
display: initial; /*当鼠标hover时展示*/
|
|
||||||
}
|
|
||||||
.formContainer{
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom:15px;
|
|
||||||
.leftBox{
|
|
||||||
font-weight: 800;
|
|
||||||
}
|
|
||||||
.righrContainer{
|
|
||||||
display: flex;
|
|
||||||
align-items:center;
|
|
||||||
}
|
|
||||||
.rightBox{
|
|
||||||
display: flex;
|
|
||||||
margin-top: 3px;
|
|
||||||
margin-left: 10px;
|
|
||||||
// align-items: center;
|
|
||||||
.righttime{
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.header{
|
|
||||||
display: flex;
|
|
||||||
// .left{
|
|
||||||
// height: 100px;
|
|
||||||
// width: 200px;
|
|
||||||
// background-color: #f7f8f9;
|
|
||||||
// margin-right: 10px;
|
|
||||||
// .serve{
|
|
||||||
// width: 175px;
|
|
||||||
// height: 50%;
|
|
||||||
// padding: 10px 10px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
.right{
|
|
||||||
width: 100%;
|
|
||||||
height: 210px;
|
|
||||||
.top{
|
|
||||||
display: flex;
|
|
||||||
height: 100px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
.one{
|
|
||||||
width: 16.66%;
|
|
||||||
height: 100%;
|
|
||||||
// background-color: orange;
|
|
||||||
background-color: #f7f8f9;
|
|
||||||
margin-left: 10px ;
|
|
||||||
padding: 10px 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.bottom{
|
|
||||||
display: flex;
|
|
||||||
height: 100px;
|
|
||||||
width: 100%;
|
|
||||||
// background-color: skyblue;
|
|
||||||
.one{
|
|
||||||
height: 100%;
|
|
||||||
// width: 375px;
|
|
||||||
background-color: #f7f8f9;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
.two{
|
|
||||||
height: 100%;
|
|
||||||
// width: 246px;
|
|
||||||
background-color: #f7f8f9;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
.salesNum{
|
|
||||||
width: calc((100% - 50px)*(2 / 6) + 10px) ;
|
|
||||||
}
|
|
||||||
.refundsNum{
|
|
||||||
width: calc((100% - 50px)*(2 / 6) + 10px) ;
|
|
||||||
}
|
|
||||||
.payment{
|
|
||||||
width: calc((100% - 50px)*(1 / 6)) ;
|
|
||||||
}
|
|
||||||
.turnover{
|
|
||||||
width: calc((100% - 50px)*(1 / 6)) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// @media screen and (max-width: 1600px) {
|
|
||||||
// .header{
|
|
||||||
// .left{
|
|
||||||
// width: 200px;
|
|
||||||
// .serve{
|
|
||||||
// width: 175px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// .right{
|
|
||||||
// // width: 1244px;
|
|
||||||
// width: calc(1280px * 80%);
|
|
||||||
// .top{
|
|
||||||
// width: calc(1280px * 80%);
|
|
||||||
// .one{
|
|
||||||
// width: 20%;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// .bottom{
|
|
||||||
// width: 100%;
|
|
||||||
// .one{
|
|
||||||
// width: 350px;
|
|
||||||
// }
|
|
||||||
// .two{
|
|
||||||
// width: 200px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// @media screen and (min-width: 1800px) {
|
|
||||||
// .header{
|
|
||||||
// .left{
|
|
||||||
// width: 200px;
|
|
||||||
// .serve{
|
|
||||||
// width: 175px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// .right{
|
|
||||||
// // width: 1244px;
|
|
||||||
// width: calc(1280px * 120%);
|
|
||||||
// .top{
|
|
||||||
// width: calc(1280px * 120%);
|
|
||||||
// .one{
|
|
||||||
// width: 20%;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// .bottom{
|
|
||||||
// width: 100%;
|
|
||||||
// .one{
|
|
||||||
// // width: 412px;
|
|
||||||
// width:450px;
|
|
||||||
// }
|
|
||||||
// .two{
|
|
||||||
// // width: 270px;
|
|
||||||
// width:295px;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
.rightBottomBox{
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
.tableGap{
|
|
||||||
display: flex;
|
|
||||||
row-gap: 10px;
|
|
||||||
}
|
|
||||||
.topSpan{
|
|
||||||
span{
|
|
||||||
font-size: 14px;
|
|
||||||
color: #3D3D3D;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
font-weight: normal;
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
::v-deep{
|
|
||||||
.vxe-table--header{
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.spanBottom{
|
|
||||||
display: inline-block;
|
|
||||||
text-align: center;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.aIcon{
|
|
||||||
position: relative;
|
|
||||||
margin: 0px 8px 0 0 ;
|
|
||||||
.el-icon-takeaway-box{
|
|
||||||
position: absolute;
|
|
||||||
left: -20px;
|
|
||||||
top: 1px
|
|
||||||
}
|
|
||||||
.el-icon-user{
|
|
||||||
position: absolute;
|
|
||||||
left: -20px;
|
|
||||||
top: -1px
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.bottomContainer{
|
|
||||||
background: #EEEEEE;
|
|
||||||
padding: 10px 20px 20px 25px;
|
|
||||||
.bottomBox{
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
padding: 10px 20px 20px 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ::v-deep {
|
|
||||||
// .vxe-table--body .col--seq:nth-child(odd) :after {
|
|
||||||
// content: "";
|
|
||||||
// position: absolute;
|
|
||||||
// top: 0px;
|
|
||||||
// right: -5px;
|
|
||||||
// display: inline-block;
|
|
||||||
// width: 20px;
|
|
||||||
// height: calc(100% - 1px);
|
|
||||||
// background-color: #ffffff;
|
|
||||||
// }
|
|
||||||
// .vxe-body--row.row--hover {
|
|
||||||
// .col--seq:nth-child(odd) :after {
|
|
||||||
// background-color: #f5f7fa;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// /*调整表格 单元格背景颜色*/
|
|
||||||
// .vxe-table .vxe-table--body-wrapper,
|
|
||||||
// .vxe-table .vxe-table--footer-wrapper {
|
|
||||||
// border: none;
|
|
||||||
// background-color: rgba(255, 255, 255);
|
|
||||||
// }
|
|
||||||
// .col--seq:nth-child(odd) {
|
|
||||||
// display: flex;
|
|
||||||
// align-items: center;
|
|
||||||
// justify-content: center;
|
|
||||||
// }
|
|
||||||
// .vxe-body--row:nth-child(even) {
|
|
||||||
// background-color: rgb(248 248 249);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
</style>
|
|
|
@ -0,0 +1,434 @@
|
||||||
|
<template>
|
||||||
|
<div class="Special_offer_box">
|
||||||
|
<div class="table_box_header">
|
||||||
|
<el-tabs class="demo-tabs" v-model="activeName" @tab-change="TabChange">
|
||||||
|
<el-tab-pane
|
||||||
|
v-for="item in tabs"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:name="item.value"
|
||||||
|
></el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<SearchForm :inputs="Inputs" @onSearch="onSearch" @onRest="onRest" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table_box_center">
|
||||||
|
<Table
|
||||||
|
ref="TableRef"
|
||||||
|
:key="TableKey"
|
||||||
|
:TabLoading="TabLoading"
|
||||||
|
:TableData="TableData"
|
||||||
|
:TableLabel="TableLabel"
|
||||||
|
>
|
||||||
|
<template #OperateButton="{ row }">
|
||||||
|
<OperateButton
|
||||||
|
:ButtonList="row.ButtonGroup"
|
||||||
|
:row="row"
|
||||||
|
></OperateButton></template
|
||||||
|
></Table>
|
||||||
|
<PaginaTion
|
||||||
|
:total="totalNumbel"
|
||||||
|
v-model:current-page="orderInfoDto.pageNo"
|
||||||
|
v-model:page-size="orderInfoDto.pageSize"
|
||||||
|
@handleSizeChange="handleSizeChange"
|
||||||
|
@handleCurrentChange="getDatas"
|
||||||
|
></PaginaTion>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, unref, computed, reactive, onMounted } from "vue";
|
||||||
|
import { router } from "@/router.js";
|
||||||
|
import { Plus } from "@element-plus/icons-vue";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import SearchForm from "@components/searchForm/index.vue";
|
||||||
|
import Table from "@components/table.vue";
|
||||||
|
import OperateButton from "@/components/OperateButton.vue";
|
||||||
|
import PaginaTion from "@components/Pagination.vue";
|
||||||
|
import {
|
||||||
|
order_info,
|
||||||
|
// get_commodity_id,
|
||||||
|
// publish,
|
||||||
|
// pull_off,
|
||||||
|
// delete_one,
|
||||||
|
} from "@/api/OrderManagement";
|
||||||
|
import { getshopInfo } from "@/api/newlybuiltgoods";
|
||||||
|
const activeName = ref("");
|
||||||
|
const tabs = ref([
|
||||||
|
{ label: "全部", value: "", total: 0 },
|
||||||
|
{ label: "订单已创建", value: "1", total: 0 },
|
||||||
|
{ label: "待发货", value: "2", total: 0 },
|
||||||
|
{ label: "已发货", value: "3", total: 0 },
|
||||||
|
{ label: "交易成功", value: "4", total: 0 },
|
||||||
|
{ label: "已退款", value: "5", total: 0 },
|
||||||
|
{ label: "交易关闭", value: "6", total: 0 },
|
||||||
|
{ label: "待处理", value: "0", total: 0 },
|
||||||
|
]);
|
||||||
|
const Inputs = ref([
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "查询订单编号",
|
||||||
|
title: "订单编号",
|
||||||
|
name: "commodityId",
|
||||||
|
value: "",
|
||||||
|
popover: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请选择闲鱼店铺",
|
||||||
|
title: "闲鱼店铺",
|
||||||
|
name: "xyId",
|
||||||
|
value: "",
|
||||||
|
options: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请选择订单状态",
|
||||||
|
title: "订单状态",
|
||||||
|
name: "",
|
||||||
|
value: "",
|
||||||
|
options: [
|
||||||
|
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请选择订单类型",
|
||||||
|
title: "订单类型",
|
||||||
|
name: "",
|
||||||
|
value: "",
|
||||||
|
options: [
|
||||||
|
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "请输入买家电话",
|
||||||
|
name: "",
|
||||||
|
value: "",
|
||||||
|
title: "买家电话",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-date-picker",
|
||||||
|
title: "创建时间",
|
||||||
|
placeholder: "",
|
||||||
|
name: "createTime",
|
||||||
|
value: [],
|
||||||
|
width: "215px",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-date-picker",
|
||||||
|
title: "付款时间",
|
||||||
|
placeholder: "",
|
||||||
|
name: "",
|
||||||
|
value: [],
|
||||||
|
width: "215px",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-date-picker",
|
||||||
|
title: "发货时间",
|
||||||
|
placeholder: "",
|
||||||
|
name: "",
|
||||||
|
value: [],
|
||||||
|
width: "215px",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-date-picker",
|
||||||
|
title: "交易成功时间",
|
||||||
|
placeholder: "",
|
||||||
|
name: "",
|
||||||
|
value: [],
|
||||||
|
width: "215px",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const TableRef = ref(null);
|
||||||
|
const TableKey = ref(new Date().getTime());
|
||||||
|
const TabLoading = ref(false);
|
||||||
|
const TableData = ref([]);
|
||||||
|
const TableLabel = ref([
|
||||||
|
{
|
||||||
|
label: "订单编号",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "创建时间",
|
||||||
|
param: "createTime",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "付款时间",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "发货时间",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "商品",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "210",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "订单状态",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "规格",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "商品总价(元)",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "订单类型",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "买家信息",
|
||||||
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "闲鱼店铺",
|
||||||
|
param: "xyName",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "操作",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
fixed: "right",
|
||||||
|
minwidth: "150",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const New_TableLabel = ref([]);
|
||||||
|
const ButtonListGroup = ref([
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "编辑",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {
|
||||||
|
// get_commodity_id(row.id).then((res) => {
|
||||||
|
// if (res.code === "200") {
|
||||||
|
// router.push({
|
||||||
|
// path: "/NewlyBuiltGoods",
|
||||||
|
// query: {
|
||||||
|
// params: JSON.stringify(res.data),
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "复制",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "上架",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {
|
||||||
|
// publish(row.id).then((res) => {
|
||||||
|
// if (res.code === "200") {
|
||||||
|
// ElMessage.success(res.msg);
|
||||||
|
// getDatas();
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-popconfirm",
|
||||||
|
name: "下架",
|
||||||
|
title: "是否下架?",
|
||||||
|
cancelText: "不用了",
|
||||||
|
popconfirmIcon: "el-icon-info",
|
||||||
|
iconColor: "red",
|
||||||
|
type: "danger",
|
||||||
|
show: false,
|
||||||
|
confirm: (row) => {
|
||||||
|
// pull_off(row.id).then((res) => {
|
||||||
|
// if (res.code === "200") {
|
||||||
|
// ElMessage.success(res.msg);
|
||||||
|
// getDatas();
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-popconfirm",
|
||||||
|
name: "删除",
|
||||||
|
title: "是否删除?",
|
||||||
|
cancelText: "不用了",
|
||||||
|
popconfirmIcon: "el-icon-info",
|
||||||
|
iconColor: "red",
|
||||||
|
type: "danger",
|
||||||
|
show: false,
|
||||||
|
confirm: (row) => {
|
||||||
|
delete_one(row.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
ElMessage.success(res.msg);
|
||||||
|
getDatas();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "日志",
|
||||||
|
show: false,
|
||||||
|
type: "warning",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {},
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
let orderInfoDto = reactive({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
publishStatus: "",
|
||||||
|
});
|
||||||
|
const totalNumbel = ref(0);
|
||||||
|
const getDatas = () => {
|
||||||
|
TabLoading.value = true;
|
||||||
|
order_info(orderInfoDto)
|
||||||
|
.then((res) => {
|
||||||
|
TabLoading.value = false;
|
||||||
|
if (res.code === "200") {
|
||||||
|
const newData = Object.assign([], res.data.data);
|
||||||
|
newData.map((item) => {
|
||||||
|
item.ButtonGroup = ButtonListGroup.value.map((el) => {
|
||||||
|
if (
|
||||||
|
(el.name === "编辑" &&
|
||||||
|
[1, -4, -2].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "下架" && [-3].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "复制" &&
|
||||||
|
[1, -2, -3, -4, 3].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "上架" && [-2, -4].includes(item.publishStatus)) ||
|
||||||
|
(el.name === "删除" && [1, -4, -2].includes(item.publishStatus))
|
||||||
|
) {
|
||||||
|
return { ...el, show: true };
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
console.log(newData);
|
||||||
|
TableData.value = newData;
|
||||||
|
totalNumbel.value = res.data.totalCount;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
TabLoading.value = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//查询
|
||||||
|
const onSearch = (value) => {
|
||||||
|
if (value.createTime) {
|
||||||
|
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
||||||
|
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
||||||
|
} else if (value.shelfTime) {
|
||||||
|
value.startShelfTime = new Date(value.shelfTime[0]).getTime();
|
||||||
|
value.endShelfTime = new Date(value.shelfTime[1]).getTime() + 86399999;
|
||||||
|
}
|
||||||
|
orderInfoDto = {
|
||||||
|
...orderInfoDto,
|
||||||
|
...value,
|
||||||
|
};
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
|
// 重置
|
||||||
|
const onRest = (value) => {
|
||||||
|
orderInfoDto = {
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
publishStatus: activeName.value,
|
||||||
|
};
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
|
const get_shopInfo = () => {
|
||||||
|
getshopInfo().then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
const storeList = [];
|
||||||
|
res.data.forEach((item) => {
|
||||||
|
storeList.push({ label: item.xyName, value: item.id });
|
||||||
|
});
|
||||||
|
Inputs.value.find((e) => e.title == "闲鱼店铺").options = storeList;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
TabChange();
|
||||||
|
get_shopInfo();
|
||||||
|
});
|
||||||
|
const handleSizeChange = () => {
|
||||||
|
orderInfoDto.pageNo = 1;
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
|
const TabChange = (val) => {
|
||||||
|
orderInfoDto.publishStatus = activeName.value;
|
||||||
|
getDatas();
|
||||||
|
TableLabel.value.forEach((e) => {
|
||||||
|
e.show = !(
|
||||||
|
e.hasOwnProperty("NumberType") && !e.NumberType.includes(Number(val))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
New_TableLabel.value = TableLabel.value;
|
||||||
|
TableKey.value = new Date().getTime();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.Special_offer_box {
|
||||||
|
height: calc(100vh - 38px);
|
||||||
|
background: #f1f2f5;
|
||||||
|
}
|
||||||
|
.table_box_header {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
.table_box_center {
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,404 +0,0 @@
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
<div class="w">
|
|
||||||
<el-row>
|
|
||||||
<el-col style="margin-top: 7px">
|
|
||||||
<el-card>
|
|
||||||
<el-button type="primary" size="small" @click="search"
|
|
||||||
>刷新</el-button
|
|
||||||
>
|
|
||||||
</el-card>
|
|
||||||
</el-col>
|
|
||||||
<el-col style="margin-top: 15px">
|
|
||||||
<el-table :data="data.tableData" style="width: 100%" height="250" v-loading="data.loading">
|
|
||||||
<el-table-column :fixed="item.fixed" :prop="item.param" :label="item.label" width="150" v-for="(item,index) in data.tableLabel" :key="String(index)">
|
|
||||||
<template #default="scope">
|
|
||||||
<span v-if="item.label=='状态'">{{scope.row[item.param]=='0'?"正常":"异常"}}</span>
|
|
||||||
<el-button size="small" type="primary" @click="editUserDate('edit', scope.row)" v-if="item.label=='操作'">
|
|
||||||
编辑
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-dialog
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
v-model="data.addEditUser"
|
|
||||||
:width="700"
|
|
||||||
:title="data.title"
|
|
||||||
>
|
|
||||||
<el-row>
|
|
||||||
<el-form
|
|
||||||
ref="ruleFormRef"
|
|
||||||
:model="ruleForm"
|
|
||||||
:rules="data.rules"
|
|
||||||
:width="120"
|
|
||||||
:label-width="120"
|
|
||||||
>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item prop="name" label="用户名称">
|
|
||||||
<el-input
|
|
||||||
v-model="ruleForm.name"
|
|
||||||
placeholder="请输入用户名称"
|
|
||||||
size="small"
|
|
||||||
:disabled="true"
|
|
||||||
style="width: 200px"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item prop="company_unique_id" label="公司ID">
|
|
||||||
<el-input
|
|
||||||
:disabled="true"
|
|
||||||
v-model="ruleForm.company_unique_id"
|
|
||||||
placeholder="请输入公司账号ID"
|
|
||||||
size="small"
|
|
||||||
style="width: 200px"
|
|
||||||
@change="namechange"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item prop="status" label="状态">
|
|
||||||
<el-select v-model="ruleForm.status" size="small" style="width: 200px">
|
|
||||||
<el-option label="正常" value="0" />
|
|
||||||
<el-option label="失效" value="1" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item prop="account_config_id" label="授权店铺">
|
|
||||||
<el-select
|
|
||||||
v-model="ruleForm.account_config_id"
|
|
||||||
size="small"
|
|
||||||
multiple
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
filterable
|
|
||||||
collapse-tags
|
|
||||||
placeholder="请选择"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in data.accountList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="收费内容" >
|
|
||||||
<el-select
|
|
||||||
v-model="ruleForm.ag_server_fee_id"
|
|
||||||
multiple
|
|
||||||
size="small"
|
|
||||||
:disabled="true"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
style="width: 200px"
|
|
||||||
placeholder="请选择"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in data.options"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col style="text-align: right">
|
|
||||||
<el-button size="small" @click="data.addEditUser = false"
|
|
||||||
>取消</el-button
|
|
||||||
>
|
|
||||||
<el-button size="small" type="primary" @click="submit(ruleFormRef)"
|
|
||||||
>确定</el-button
|
|
||||||
>
|
|
||||||
</el-col>
|
|
||||||
</el-form>
|
|
||||||
</el-row>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
import CoatPriceTable from "@components/newtable/index.vue";
|
|
||||||
import Pagination from "@components/pagination/pagination.vue";
|
|
||||||
import {
|
|
||||||
get_ag_service,
|
|
||||||
service_provider_edit,
|
|
||||||
service_provider_list,
|
|
||||||
search_account,
|
|
||||||
get_search_company,
|
|
||||||
batch_start_exemption,
|
|
||||||
batch_stop_exemption,
|
|
||||||
} from "@/api/FundDetails";
|
|
||||||
import { account_config_list } from "@/api/user";
|
|
||||||
import { ElMessage } from "element-plus";
|
|
||||||
import { computed, reactive,ref,onMounted } from 'vue';
|
|
||||||
import {debunce} from "@services/commont";
|
|
||||||
|
|
||||||
const ruleFormRef=ref(null);
|
|
||||||
|
|
||||||
const ruleForm=ref({
|
|
||||||
name: "",
|
|
||||||
company_unique_id: "",
|
|
||||||
status: "",
|
|
||||||
account_config_id: "",
|
|
||||||
});
|
|
||||||
const data=reactive({
|
|
||||||
addEditUser: false,
|
|
||||||
loading: false,
|
|
||||||
title: "",
|
|
||||||
p_user_id: "",
|
|
||||||
accountList: [],
|
|
||||||
tableData: [],
|
|
||||||
value2: [],
|
|
||||||
value3: "",
|
|
||||||
options: [],
|
|
||||||
rules: {
|
|
||||||
company_unique_id: [
|
|
||||||
{ required: true, message: "请输入公司ID", trigger: "blur" },
|
|
||||||
],
|
|
||||||
name: [{ required: true, message: "请输入用户名称", trigger: "blur" }],
|
|
||||||
status: [{ required: true, message: "请选择状态", trigger: "change" }],
|
|
||||||
desc: [{ required: true, message: "请填写公司名称", trigger: "blur" }],
|
|
||||||
account_config_id: [
|
|
||||||
{ required: true, message: "请选择授权店铺", trigger: "blur" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
page: {
|
|
||||||
total: 0, // 分页总条数
|
|
||||||
pageSize: 100, // 每页显示条数
|
|
||||||
pageNum: 1, // 当前页
|
|
||||||
pagesizes: [100, 200, 500, 1000, 2000],
|
|
||||||
},
|
|
||||||
inputDate: [{ label: "账号", prop: "accout" }],
|
|
||||||
tableLabel: [
|
|
||||||
{ label: "商户名称", param: "name", align: "center", show: true },
|
|
||||||
// { label: '账号', param: 'account_num', align: 'center', show: true },
|
|
||||||
{ label: "公司名称", param: "truename", align: "center", show: true },
|
|
||||||
{ label: "公司账号", param: "company_unique_id", align: "center", show: true },
|
|
||||||
{ label: "授权店铺", param: "dianpu", align: "center", show: true },
|
|
||||||
{ label: "状态", param: "status", align: "center", show: true },
|
|
||||||
{
|
|
||||||
label: "操作",
|
|
||||||
param: "serviceProviderList",
|
|
||||||
align: "center",
|
|
||||||
fixed:'right',
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
selectdateList: [],
|
|
||||||
});
|
|
||||||
|
|
||||||
// 获取搜索账号
|
|
||||||
const get_search_account=(e)=>{
|
|
||||||
get_search_company({company_id:e}).then((res)=>{
|
|
||||||
if (res.errcode == 0) {
|
|
||||||
ruleForm.value.p_user_id = res.datas.p_user_id;
|
|
||||||
if (res.datas.p_user_id == null) {
|
|
||||||
ElMessage("没有找到此账号!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取列表
|
|
||||||
const getList=()=>{
|
|
||||||
data.loading = true;
|
|
||||||
service_provider_list({ type: ["2"]}).then((res)=>{
|
|
||||||
if(res.errcode==0){
|
|
||||||
data.tableData = res.datas;
|
|
||||||
data.tableData.forEach((item) => {
|
|
||||||
item.is_exemption
|
|
||||||
? (item.is_exemption = true)
|
|
||||||
: (item.is_exemption = false);
|
|
||||||
if (item.account.length > 0) {
|
|
||||||
item.account_num = item.account[0].account;
|
|
||||||
item.dianpu = item.account[0].contact_name;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
data.loading = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// this.page.total = res.datas.total
|
|
||||||
}
|
|
||||||
|
|
||||||
const getCompanyId=debunce(get_search_account,500);
|
|
||||||
const getListApi=debunce(getList,1000);
|
|
||||||
|
|
||||||
const search=()=>{
|
|
||||||
getListApi();
|
|
||||||
}
|
|
||||||
|
|
||||||
const submit=(formName)=>{
|
|
||||||
formName.validate(async (valid) => {
|
|
||||||
if (valid) {
|
|
||||||
const obj = { ...ruleForm.value};
|
|
||||||
if(obj.is_exemption){
|
|
||||||
obj.is_exemption = 1
|
|
||||||
}else{
|
|
||||||
obj.is_exemption = 0
|
|
||||||
}
|
|
||||||
service_provider_edit(obj).then((res)=>{
|
|
||||||
if(res.errcode==0){
|
|
||||||
getListApi();
|
|
||||||
data.addEditUser = false;
|
|
||||||
}else{
|
|
||||||
ElMessage(res.msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
} else {
|
|
||||||
console.log("error submit!!");
|
|
||||||
ElMessage("表单内容有误");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// 获取数据
|
|
||||||
const getService_provider_list=()=>{
|
|
||||||
data.loading=true;
|
|
||||||
get_ag_service().then((res1)=>{
|
|
||||||
if(res1.errcode==0){
|
|
||||||
|
|
||||||
if (res1.datas.length !== 0) {
|
|
||||||
data.options = res1.datas.map((item) => {
|
|
||||||
return {
|
|
||||||
label: item.name,
|
|
||||||
value: item.ag_server_fee_id,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
data.loading=false;
|
|
||||||
}else{
|
|
||||||
data.loading=false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
account_config_list({
|
|
||||||
is_config_data: 1,
|
|
||||||
status: [1],
|
|
||||||
jstatus: 1,
|
|
||||||
class_id: "17",
|
|
||||||
}).then((res2)=>{
|
|
||||||
if(res2.errcode==0){
|
|
||||||
data.accountList = res2.datas.datas_list.map((item) => {
|
|
||||||
return {
|
|
||||||
label: item.account,
|
|
||||||
value: item.account_config_id,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 新增编辑
|
|
||||||
const editUserDate=(str, row)=>{
|
|
||||||
|
|
||||||
data.addEditUser = true;
|
|
||||||
if (str === "add") {
|
|
||||||
data.title = "新增用户";
|
|
||||||
ruleForm.value= {};
|
|
||||||
} else {
|
|
||||||
data.title = "编辑用户";
|
|
||||||
ruleForm.value = row;
|
|
||||||
row.is_exemption == 1
|
|
||||||
? ( ruleForm.value.is_exemption = true)
|
|
||||||
: ( ruleForm.value.is_exemption = false);
|
|
||||||
row.ag_server_fee_id == 0
|
|
||||||
? ( ruleForm.value.ag_server_fee_id = "")
|
|
||||||
: ( ruleForm.value.ag_server_fee_id = row.ag_server_fee_id);
|
|
||||||
ruleForm.value .status = ruleForm.value.status.toString();
|
|
||||||
ruleForm.value .ag_server_fee_id = ruleForm.value.server_fee_map;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 分页页码
|
|
||||||
const handleCurrentChange=(data)=>{
|
|
||||||
data.loading = true;
|
|
||||||
Object.assign(data.formLabelAlign, data);
|
|
||||||
gettableDate();
|
|
||||||
}
|
|
||||||
// 分页条数
|
|
||||||
const handleSizeChange=(data)=>{
|
|
||||||
data.loading = true;
|
|
||||||
Object.assign(data.formLabelAlign, data);
|
|
||||||
gettableDate();
|
|
||||||
}
|
|
||||||
// 账号change
|
|
||||||
const namechange=(e)=>{
|
|
||||||
if (e != "") {
|
|
||||||
|
|
||||||
getCompanyId(e);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const SelectionChange=(val)=>{
|
|
||||||
data.selectdateList = val;
|
|
||||||
}
|
|
||||||
const changeInspection=(row)=>{
|
|
||||||
const params = [row.id];
|
|
||||||
if (row.is_exemption) {
|
|
||||||
batch_start_exemption({ ids: params }).then((res) => {
|
|
||||||
if (res.errcode === 0) {
|
|
||||||
data.selectdateList = [];
|
|
||||||
getList();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
batch_stop_exemption({ ids: params }).then((res) => {
|
|
||||||
if (res.errcode === 0) {
|
|
||||||
data.selectdateList = [];
|
|
||||||
getList();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const openInspection=()=>{
|
|
||||||
if (!this.selectdateList.length) {
|
|
||||||
ElMessage("请先勾选机器");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const params = [];
|
|
||||||
data.selectdateList.forEach((item) => {
|
|
||||||
params.push(item.id);
|
|
||||||
});
|
|
||||||
batch_start_exemption({ ids: params }).then((res) => {
|
|
||||||
if (res.errcode === 0) {
|
|
||||||
data.selectdateList = [];
|
|
||||||
getList();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
const offInspection=()=>{
|
|
||||||
if (!data.selectdateList.length) {
|
|
||||||
ElMessage("请先勾选机器");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const params = [];
|
|
||||||
data.selectdateList.forEach((item) => {
|
|
||||||
params.push(item.id);
|
|
||||||
});
|
|
||||||
batch_stop_exemption({ ids: params }).then((res) => {
|
|
||||||
if (res.errcode === 0) {
|
|
||||||
data.selectdateList = [];
|
|
||||||
this.getList();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getService_provider_list();
|
|
||||||
getList();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.w {
|
|
||||||
margin: 0 15px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,420 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="salecontainer">
|
|
||||||
<div class="saletopbox">
|
|
||||||
<!-- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="onTabChange">
|
|
||||||
<el-tab-pane v-for="item in tabsdatas" :key="item.value" :label="renderlaebl(item)"
|
|
||||||
:name="item.value"></el-tab-pane>
|
|
||||||
</el-tabs> -->
|
|
||||||
<div class="searchbox">
|
|
||||||
<el-input v-model="imeivalue" size="large" class="topinput" placeholder="查询IMEI/SN/机器编号">
|
|
||||||
<!-- <template #suffix>
|
|
||||||
<i class="iconfont icon-icon-piliangcaozuo imeiicondefault"
|
|
||||||
:class="imeipopover ? 'imeiiconActive' : 'imeiicon'" style="font-size: 12px;"
|
|
||||||
@click.prevent="imeiiconClick"></i>
|
|
||||||
</template> -->
|
|
||||||
</el-input>
|
|
||||||
<el-input v-model="imeivalue" size="large" class="topinput" placeholder="查询质检码">
|
|
||||||
<!-- <template #suffix>
|
|
||||||
<i class="iconfont icon-icon-piliangcaozuo imeiicondefault"
|
|
||||||
:class="imeipopover ? 'imeiiconActive' : 'imeiicon'" style="font-size: 12px;"
|
|
||||||
@click.prevent="imeiiconClick"></i>
|
|
||||||
</template> -->
|
|
||||||
</el-input>
|
|
||||||
<el-button type="primary">查询</el-button>
|
|
||||||
<el-button>重置</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<Table :data="list" @looksLogs="looksLogs" @delivery="doDelivery" :columns="newcolumns" :loading="loading"
|
|
||||||
:pageSize="pageSize" :page="page" :total="total" :handleSizeChange="handleSizeChange"
|
|
||||||
:handleCurrentChange="handleCurrentChange" @quality="onQuality" @processing="onProcessing"
|
|
||||||
@judgment="onJudgment" />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, unref, computed, reactive } from 'vue';
|
|
||||||
import Table from "@components/qcTable.vue";
|
|
||||||
import axioshooks from "@axioshooks";
|
|
||||||
import { ElMessage } from "element-plus";
|
|
||||||
import { formatDate } from "@services/commont";
|
|
||||||
import DriverForm from "@components/driverForm/index.vue"
|
|
||||||
import { useRouter } from 'vue-router';
|
|
||||||
import { Plus } from "@element-plus/icons-vue";
|
|
||||||
import { initOss } from '@services/commont';
|
|
||||||
const router = useRouter();
|
|
||||||
const activeName = ref('0');
|
|
||||||
|
|
||||||
const imeipopover = ref(false);
|
|
||||||
const imeivalue = ref('');
|
|
||||||
const pageSize = ref(10);
|
|
||||||
const page = ref(1);
|
|
||||||
const total = ref(0);
|
|
||||||
const loading = ref(false);
|
|
||||||
const logsList = ref(false);
|
|
||||||
const logsState = ref(false);
|
|
||||||
const logsloading = ref(false);
|
|
||||||
const draveState = ref(false);
|
|
||||||
const refund_status = ref('');
|
|
||||||
const DeliveryInfoList = ref({});
|
|
||||||
const processState = ref(false);
|
|
||||||
const processData = ref({ xy_sale_after_additional_id: '' });
|
|
||||||
const processValue = ref(1);
|
|
||||||
const judgState = ref(false);
|
|
||||||
const judgData = ref({ xy_sale_after_additional_id: '' });
|
|
||||||
const judgValue = ref({ mode: "1", info: "", imageUrl: "" });
|
|
||||||
|
|
||||||
|
|
||||||
const imeiiconClick = () => {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const renderlaebl = (item) => {
|
|
||||||
if (item.total > 0) {
|
|
||||||
return `${item.label} ${item.total}`
|
|
||||||
}
|
|
||||||
return item.label
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const list = ref([]);
|
|
||||||
const columns = [
|
|
||||||
{
|
|
||||||
dataKey: `machine_name`,
|
|
||||||
label: "机器信息",
|
|
||||||
width: 300,
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `title`,
|
|
||||||
label: "商品标题",
|
|
||||||
show: true,
|
|
||||||
width: 100,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `merchant_name`,
|
|
||||||
label: "闲鱼账号",
|
|
||||||
width: 100,
|
|
||||||
align: "center",
|
|
||||||
}, {
|
|
||||||
dataKey: `price`,
|
|
||||||
label: "订单价格",
|
|
||||||
width: 100,
|
|
||||||
align: "center",
|
|
||||||
}, {
|
|
||||||
dataKey: `buy_info`,
|
|
||||||
label: "买家信息",
|
|
||||||
width: 150,
|
|
||||||
align: "center",
|
|
||||||
show: true,
|
|
||||||
}, {
|
|
||||||
dataKey: `buyer_apply_reason`,
|
|
||||||
label: "售后原因",
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
width: 100,
|
|
||||||
align: "center",
|
|
||||||
}, {
|
|
||||||
dataKey: `inspect_report`,
|
|
||||||
label: "售前质检报告",
|
|
||||||
width: 150,
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
}, {
|
|
||||||
key: `买家退货物流`,
|
|
||||||
dataKey: `refund_post_no`,
|
|
||||||
label: "买家退货物流",
|
|
||||||
width: 150,
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: `收货人`,
|
|
||||||
dataKey: ``,
|
|
||||||
label: "收货人",
|
|
||||||
width: 150,
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: `质检员`,
|
|
||||||
dataKey: ``,
|
|
||||||
label: "质检员",
|
|
||||||
width: 150,
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: `操作`,
|
|
||||||
dataKey: `opction`,
|
|
||||||
label: "操作",
|
|
||||||
width: 120,
|
|
||||||
show: true,
|
|
||||||
align: "center",
|
|
||||||
status: []
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
const newcolumns = computed(() => {
|
|
||||||
let cludata = Object.assign([], columns);
|
|
||||||
|
|
||||||
return cludata;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const getDatas = (p) => {
|
|
||||||
page.value = p ? p : 1;
|
|
||||||
loading.value = true;
|
|
||||||
total.value = 0;
|
|
||||||
axioshooks({
|
|
||||||
data: { sale_after_additional_status: Number(activeName.value) < 9 ? activeName.value : "0", list_row: pageSize.value, page: page.value, refund_status: refund_status.value },
|
|
||||||
url: "trusteeship/after_sales_list",
|
|
||||||
customHandler: (err, e) => {
|
|
||||||
if (!err && e) {
|
|
||||||
if (e.errcode == 0) {
|
|
||||||
list.value = e.datas.datas_list;
|
|
||||||
total.value = e.datas.total;
|
|
||||||
loading.value = false;
|
|
||||||
} else {
|
|
||||||
ElMessage(e.msg);
|
|
||||||
loading.value = false;
|
|
||||||
}
|
|
||||||
} else if (err) {
|
|
||||||
ElMessage(err);
|
|
||||||
loading.value = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getDatas(1);
|
|
||||||
|
|
||||||
const handleSizeChange = (v) => {
|
|
||||||
pageSize.value = v;
|
|
||||||
getDatas(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const looksLogs = (data) => {
|
|
||||||
logsloading.value = true;
|
|
||||||
logsState.value = true;
|
|
||||||
axioshooks({
|
|
||||||
data: { refund_id: data.after_sales_order_number },
|
|
||||||
url: "xy/sale_after_log",
|
|
||||||
customHandler: (err, e) => {
|
|
||||||
if (!err && e) {
|
|
||||||
if (e.errcode == 0) {
|
|
||||||
logsList.value = e.datas;
|
|
||||||
logsloading.value = false;
|
|
||||||
} else {
|
|
||||||
ElMessage(e.msg);
|
|
||||||
logsloading.value = false;
|
|
||||||
}
|
|
||||||
} else if (err) {
|
|
||||||
ElMessage(err);
|
|
||||||
logsloading.value = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const doDelivery = (data) => {
|
|
||||||
draveState.value = true;
|
|
||||||
logsloading.value = true;
|
|
||||||
axioshooks({
|
|
||||||
data: { xy_sale_after_additional_id: data.xy_sale_after_additional_id },
|
|
||||||
url: "trusteeship/shipping_info",
|
|
||||||
customHandler: (err, e) => {
|
|
||||||
if (!err && e) {
|
|
||||||
if (e.errcode == 0) {
|
|
||||||
DeliveryInfoList.value = Object.assign({}, data, e.datas);
|
|
||||||
logsloading.value = false;
|
|
||||||
} else {
|
|
||||||
ElMessage(e.msg);
|
|
||||||
logsloading.value = false;
|
|
||||||
}
|
|
||||||
} else if (err) {
|
|
||||||
ElMessage(err);
|
|
||||||
logsloading.value = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const handleCurrentChange = (v) => {
|
|
||||||
getDatas(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
const DeliveryCancel = () => {
|
|
||||||
draveState.value = false;
|
|
||||||
}
|
|
||||||
const DeliveryConfirm = () => {
|
|
||||||
draveState.value = false;
|
|
||||||
getDatas(page.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
const onProcessing = (data) => {
|
|
||||||
processData.value = data;
|
|
||||||
processState.value = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onJudgment = (data) => {
|
|
||||||
judgState.value = data;
|
|
||||||
judgData.value = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onQuality = (data) => {
|
|
||||||
router.push({ path: 'qualityWork', query: { xy_sale_after_additional_id: data.xy_sale_after_additional_id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
const doProcess = (data) => {
|
|
||||||
if (!processValue.value) {
|
|
||||||
ElMessage('请选择处理结果');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!data.xy_sale_after_additional_id) {
|
|
||||||
ElMessage('非法点击');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
axioshooks({
|
|
||||||
url: 'trusteeship/exception_handling',
|
|
||||||
data: { address_accord_with: processValue.value, xy_sale_after_additional_id: data?.xy_sale_after_additional_id },
|
|
||||||
customHandler: (err, e) => {
|
|
||||||
if (!err && e) {
|
|
||||||
if (e.errcode == 0) {
|
|
||||||
ElMessage("操作成功");
|
|
||||||
processData.value = {};
|
|
||||||
processValue.value = 1;
|
|
||||||
processState.value = false;
|
|
||||||
getDatas(page.value);
|
|
||||||
} else {
|
|
||||||
ElMessage(e.msg);
|
|
||||||
}
|
|
||||||
} else if (err) {
|
|
||||||
ElMessage(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const doJudg = (data) => {
|
|
||||||
if (!judgValue.value.mode) {
|
|
||||||
ElMessage('请选择处理结果');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// if(!data.xy_sale_after_additional_id){
|
|
||||||
// ElMessage('非法点击');
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
axioshooks({
|
|
||||||
url: 'trusteeship/judgment_responsibility',
|
|
||||||
data: { responsibility_type: judgValue.value.mode, xy_sale_after_additional_id: data?.xy_sale_after_additional_id, responsibility_explanation: judgValue.value.info, responsibility_img: judgValue.value.imageUrl },
|
|
||||||
customHandler: (err, e) => {
|
|
||||||
if (!err && e) {
|
|
||||||
if (e.errcode == 0) {
|
|
||||||
ElMessage("操作成功");
|
|
||||||
processData.value = {};
|
|
||||||
processValue.value = 1;
|
|
||||||
processState.value = false;
|
|
||||||
getDatas(page.value);
|
|
||||||
} else {
|
|
||||||
ElMessage(e.msg);
|
|
||||||
}
|
|
||||||
} else if (err) {
|
|
||||||
ElMessage(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const beforeAvatarUpload = (rawFile) => {
|
|
||||||
let types=["image/jpeg","image/png","image/gif","image/bmp","image/jpg"];
|
|
||||||
if(!types.includes(rawFile.type)){
|
|
||||||
ElMessage.error('图片格式有误!')
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if (rawFile.size / 1024 / 1024 > 2) {
|
|
||||||
ElMessage.error('Avatar picture size can not exceed 2MB!')
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
initOss(rawFile).then((link)=>{
|
|
||||||
judgValue.value.imageUrl = link;
|
|
||||||
}).catch((err) => {
|
|
||||||
ElMessage(err.message);
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.avatar-uploader .avatar {
|
|
||||||
width: 80px;
|
|
||||||
height: 80px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.salecontainer {
|
|
||||||
background: #F1F2F5;
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.saletopbox {
|
|
||||||
background: #fff;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchbox {
|
|
||||||
margin-top: 5px;
|
|
||||||
display: grid;
|
|
||||||
align-items: center;
|
|
||||||
grid-gap: 10px;
|
|
||||||
grid-template-columns: 3fr 3fr 1fr 1fr 4fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.receivingWorkbenchbox {
|
|
||||||
padding: 10px;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.topinput {
|
|
||||||
height: 36px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imeiicondefault {
|
|
||||||
height: 26px;
|
|
||||||
width: 26px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
border-radius: 4px;
|
|
||||||
background: #f0f2f5;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar-uploader .el-upload {
|
|
||||||
border: 1px dashed var(--el-border-color);
|
|
||||||
border-radius: 6px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
transition: var(--el-transition-duration-fast);
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar-uploader .el-upload:hover {
|
|
||||||
border-color: var(--el-color-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-icon.avatar-uploader-icon {
|
|
||||||
font-size: 28px;
|
|
||||||
color: #8c939d;
|
|
||||||
width: 80px;
|
|
||||||
height: 80px;
|
|
||||||
text-align: center;
|
|
||||||
background: #f1f1f1;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,752 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="salecontainer">
|
|
||||||
<SearchForm :inputs="Inputs" @onSearch="onSearch" @onRest="onRest"/>
|
|
||||||
|
|
||||||
<Table :data="list" @looksLogs="looksLogs" :select="false" :spanMethod="true" @onSelect="onSelect" @delivery="doDelivery" :columns="newcolumns" :loading="loading" :pageSize="pageSize" :page="page" :total="total" :handleSizeChange="handleSizeChange" :handleCurrentChange="handleCurrentChange" @quality="onQuality" @processing="onProcessing" @judgment="onJudgment" @ConfirmReceipt="onConfirmReceipt"/>
|
|
||||||
<el-dialog v-model="logsState" :before-close="()=>logsState=false" title="售后日志">
|
|
||||||
<el-table
|
|
||||||
:data="logsList"
|
|
||||||
border
|
|
||||||
height="260px"
|
|
||||||
style="width: 100%"
|
|
||||||
v-loading="logsloading"
|
|
||||||
element-loading-text="加载中"
|
|
||||||
element-loading-spinner="el-icon-loading"
|
|
||||||
>
|
|
||||||
<el-table-column type="index" label="序号" width="60" />
|
|
||||||
<el-table-column prop="content" label="内容" min-width="180">
|
|
||||||
<template #default="scope">
|
|
||||||
<span v-if="scope.row.content">
|
|
||||||
{{ scope.row.content }}
|
|
||||||
</span>
|
|
||||||
<span v-else-if="scope.row.log_content">
|
|
||||||
{{ scope.row.log_content }}
|
|
||||||
</span>
|
|
||||||
<span v-else>
|
|
||||||
{{ scope.row.content }}
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column prop="truename" label="操作人">
|
|
||||||
<template #default="scope">
|
|
||||||
<span v-if="scope.row.truename">
|
|
||||||
{{ scope.row.truename }}({{ scope.row.username }})
|
|
||||||
</span>
|
|
||||||
<span v-else>
|
|
||||||
{{ scope.row.username }}
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="add_time" label="操作时间" min-width="180" />
|
|
||||||
</el-table>
|
|
||||||
<template #footer>
|
|
||||||
<span class="dialog-footer">
|
|
||||||
<el-button size="small" @click="()=>logsState=false">关 闭</el-button>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
<el-dialog v-model="draveState" :before-close="()=>draveState=false" title="发货" :width="900">
|
|
||||||
<DriverForm :DeliveryInfoList="DeliveryInfoList" @deliveryConfirm="DeliveryConfirm" @deliveryCancel="DeliveryCancel"/>
|
|
||||||
</el-dialog>
|
|
||||||
<el-dialog v-model="processState" :before-close="()=>processState=false" title="人工处理" :width="600">
|
|
||||||
<el-radio-group v-model="processValue">
|
|
||||||
<el-radio :value="1">已核实地址符合情况--售后单状态改为待售后收货</el-radio>
|
|
||||||
<el-radio :value="2">忽略本次异常--状态改为已处理</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
<div class="btnbox">
|
|
||||||
<el-button text class="btn" @click="()=>processState=false"
|
|
||||||
>取消<i
|
|
||||||
class="el-icon-circle-close"
|
|
||||||
style="margin-left: 5px"
|
|
||||||
/></el-button>
|
|
||||||
<el-button
|
|
||||||
text
|
|
||||||
type="primary"
|
|
||||||
class="btn"
|
|
||||||
@click="doProcess(processData)"
|
|
||||||
>确定</el-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
<el-dialog v-model="judgState" :before-close="()=>judgState=false" title="判责情况" :width="600">
|
|
||||||
<h4>判责</h4>
|
|
||||||
<el-radio-group v-model="judgValue.mode">
|
|
||||||
<el-radio :value="1">卖家责任</el-radio>
|
|
||||||
<el-radio :value="2">买家责任</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
<el-row :gutter="24">
|
|
||||||
<el-col :span="12">
|
|
||||||
<h4>说明</h4>
|
|
||||||
<el-input placeholder="请输入说明" type="textarea" v-model="judgValue.info"></el-input>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="10">
|
|
||||||
<h4>图片</h4>
|
|
||||||
<el-upload
|
|
||||||
class="avatar-uploader"
|
|
||||||
:show-file-list="false"
|
|
||||||
:before-upload="beforeAvatarUpload"
|
|
||||||
>
|
|
||||||
<img v-if="judgValue.imageUrl" :src="judgValue.imageUrl" class="avatar" />
|
|
||||||
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
|
||||||
</el-upload>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="btnbox">
|
|
||||||
<el-button text class="btn" @click="()=>judgState=false"
|
|
||||||
>取消<i
|
|
||||||
class="el-icon-circle-close"
|
|
||||||
style="margin-left: 5px"
|
|
||||||
/></el-button>
|
|
||||||
<el-button
|
|
||||||
text
|
|
||||||
type="primary"
|
|
||||||
class="btn"
|
|
||||||
@click="doJudg(judgData)"
|
|
||||||
>确定</el-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
<el-dialog v-model="receState.state" :before-close="()=>judgState=false" title="手动收货" :width="600">
|
|
||||||
<h4>快递单号/说明</h4>
|
|
||||||
<el-input placeholder="请输入快递单号/说明" type="textarea" v-model="receState.value"></el-input>
|
|
||||||
<div class="btnbox" style="margin-top:15px">
|
|
||||||
<el-button text class="btn" @click="()=>receState.state=false"
|
|
||||||
>取消<i
|
|
||||||
class="el-icon-circle-close"
|
|
||||||
style="margin-left: 5px"
|
|
||||||
/></el-button>
|
|
||||||
<el-button
|
|
||||||
text
|
|
||||||
type="primary"
|
|
||||||
class="btn"
|
|
||||||
@click="doRecive(receState.data)"
|
|
||||||
>确定</el-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref,unref,computed,reactive,onMounted} from 'vue';
|
|
||||||
import Table from "@components/table.vue";
|
|
||||||
import axioshooks from "@axioshooks";
|
|
||||||
import {ElMessage} from "element-plus";
|
|
||||||
import {formatDate} from "@services/commont";
|
|
||||||
import DriverForm from "@components/driverForm/index.vue"
|
|
||||||
import { useRouter } from 'vue-router';
|
|
||||||
import {Plus} from "@element-plus/icons-vue";
|
|
||||||
import SearchForm from "@components/searchForm/index.vue";
|
|
||||||
import { initOss } from '@services/commont';
|
|
||||||
const router=useRouter();
|
|
||||||
const activeName=ref('0');
|
|
||||||
|
|
||||||
|
|
||||||
const murecedata=reactive({
|
|
||||||
data:[],
|
|
||||||
state:false
|
|
||||||
});
|
|
||||||
const receState=reactive({
|
|
||||||
state:false,data:[],value:""
|
|
||||||
});
|
|
||||||
const imeipopover=ref(false);
|
|
||||||
const imeivalue=reactive({
|
|
||||||
imei:"",
|
|
||||||
inspect:""
|
|
||||||
});
|
|
||||||
|
|
||||||
const searchparams=reactive({
|
|
||||||
imei:"",
|
|
||||||
inspect:""
|
|
||||||
});
|
|
||||||
const pageSize=ref(10);
|
|
||||||
const page=ref(1);
|
|
||||||
const total=ref(0);
|
|
||||||
const loading=ref(false);
|
|
||||||
const logsList=ref(false);
|
|
||||||
const logsState=ref(false);
|
|
||||||
const logsloading=ref(false);
|
|
||||||
const draveState=ref(false);
|
|
||||||
const refund_status=ref('');
|
|
||||||
const DeliveryInfoList=ref({});
|
|
||||||
const processState=ref(false);
|
|
||||||
const processData=ref({xy_sale_after_additional_id:''});
|
|
||||||
const processValue=ref(1);
|
|
||||||
const judgState=ref(false);
|
|
||||||
const judgData=ref({xy_sale_after_additional_id:''});
|
|
||||||
const judgValue=ref({mode:"1",info:"",imageUrl:""});
|
|
||||||
const list=ref([]);
|
|
||||||
|
|
||||||
const select=computed(()=>{
|
|
||||||
if(activeName.value=="2"){
|
|
||||||
return true;
|
|
||||||
}else{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const onTabChange=(e)=>{
|
|
||||||
if(activeName.value!=e.props.name){
|
|
||||||
activeName.value=e.props.name;
|
|
||||||
if(e.props.name=="9"){
|
|
||||||
refund_status.value="1";
|
|
||||||
}else if(e.props.name=="10"){
|
|
||||||
refund_status.value="6";
|
|
||||||
}else{
|
|
||||||
refund_status.value="";
|
|
||||||
}
|
|
||||||
getDatas(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const params=ref({});
|
|
||||||
|
|
||||||
const onSearch=(values)=>{
|
|
||||||
values = {
|
|
||||||
...values,
|
|
||||||
quality_inspection_time_start:values.quality_inspection_time[0],
|
|
||||||
quality_inspection_time_end:values.quality_inspection_time[1]
|
|
||||||
}
|
|
||||||
params.value=values;
|
|
||||||
getDatas(1);
|
|
||||||
}
|
|
||||||
const onRest=()=>{
|
|
||||||
params.value={};
|
|
||||||
getDatas(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const renderlaebl=(item)=>{
|
|
||||||
if(item.total>0){
|
|
||||||
return `${item.label} ${item.total}`
|
|
||||||
}
|
|
||||||
return item.label
|
|
||||||
}
|
|
||||||
|
|
||||||
const mutrevice=()=>{
|
|
||||||
if(!murecedata.data){
|
|
||||||
ElMessage("请选择要收货的订单");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
murecedata.state=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onSelect=(values)=>{
|
|
||||||
murecedata.data=values;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Inputs=ref([
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"查询IMEI/SN/机器编号",
|
|
||||||
value:"",
|
|
||||||
title:"IMEI/SN/机器编号",
|
|
||||||
name:"imei",
|
|
||||||
popover:true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"查询质检码",
|
|
||||||
name:"quality_inspection_code",
|
|
||||||
value:"",
|
|
||||||
popover:true,
|
|
||||||
title:"查询质检码",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入销售单号",
|
|
||||||
name:"sales_order_number",
|
|
||||||
value:"",
|
|
||||||
title:"销售单号",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入售后订单号",
|
|
||||||
name:"after_sales_order_number",
|
|
||||||
value:"",
|
|
||||||
title:"售后订单号",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入商品名称",
|
|
||||||
name:"title",
|
|
||||||
value:"",
|
|
||||||
title:"商品名称",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入买家姓名",
|
|
||||||
name:"consignee_name",
|
|
||||||
value:"",
|
|
||||||
title:"买家姓名",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入买家手机号",
|
|
||||||
name:"consignee_phone",
|
|
||||||
value:"",
|
|
||||||
title:"买家手机号",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入买家地址",
|
|
||||||
name:"consignee_address",
|
|
||||||
value:"",
|
|
||||||
title:"收货人",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入快递单号",
|
|
||||||
name:"refund_post_no",
|
|
||||||
value:"",
|
|
||||||
title:"快递单号",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-date-picker",
|
|
||||||
placeholder:"",
|
|
||||||
name:"quality_inspection_time",
|
|
||||||
value:"",
|
|
||||||
title:"质检时间",
|
|
||||||
width:"215px"
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
|
|
||||||
|
|
||||||
const columns=[
|
|
||||||
{
|
|
||||||
dataKey: `machine_name`,
|
|
||||||
title:"机器信息",
|
|
||||||
width:300,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `title`,
|
|
||||||
title:"商品标题",
|
|
||||||
show:true,
|
|
||||||
width:100,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `merchant_name`,
|
|
||||||
title:"闲鱼账号",
|
|
||||||
width:100,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `price`,
|
|
||||||
title:"订单价格",
|
|
||||||
width:100,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `buy_info`,
|
|
||||||
title:"买家信息",
|
|
||||||
width:150,
|
|
||||||
align: "center",
|
|
||||||
show:true,
|
|
||||||
},{
|
|
||||||
dataKey: `buyer_apply_reason`,
|
|
||||||
title:"售后原因",
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
width:100,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `inspect_report`,
|
|
||||||
title:"质检员/售后质检报告",
|
|
||||||
width:170,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `quality_inspection_code`,
|
|
||||||
title:"售后质检码",
|
|
||||||
width:150,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `responsibility_type`,
|
|
||||||
title:"判责情况",
|
|
||||||
width:150,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `quality_inspection_time`,
|
|
||||||
title:"质检时间",
|
|
||||||
width:150,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `return_tracking_number`,
|
|
||||||
title:"寄回物流信息",
|
|
||||||
width:150,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
key: `买家退货物流`,
|
|
||||||
dataKey: `refund_post_no`,
|
|
||||||
title:"买家退货物流",
|
|
||||||
width:150,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `receiver`,
|
|
||||||
title:"收货人/收货时间",
|
|
||||||
width:140,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `sale_after_additional_status`,
|
|
||||||
title:"售后状态",
|
|
||||||
width:100,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
key: `操作`,
|
|
||||||
dataKey: `opction`,
|
|
||||||
title:"操作",
|
|
||||||
width:100,
|
|
||||||
show:true,
|
|
||||||
fixed:'right',
|
|
||||||
align: "center",
|
|
||||||
status:['Logs']
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
const newcolumns=computed(()=>{
|
|
||||||
let cludata=Object.assign([],columns);
|
|
||||||
if(activeName.value=='10'){
|
|
||||||
cludata.splice(columns.length-2,0,{
|
|
||||||
dataKey: `seller_refuse_reason`,
|
|
||||||
label:"卖家拒绝原因",
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
width:150,
|
|
||||||
align: "center",
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
// else if(activeName.value=='8'){
|
|
||||||
// cludata.splice(columns.length-2,0,{
|
|
||||||
// dataKey: `address_accord_with`,
|
|
||||||
// label:"处理结果",
|
|
||||||
// show:true,
|
|
||||||
// align: "center",
|
|
||||||
// width:100,
|
|
||||||
// align: "center",
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
return cludata;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const getDatas=(p)=>{
|
|
||||||
page.value=p?p:1;
|
|
||||||
loading.value=true;
|
|
||||||
total.value=0;
|
|
||||||
axioshooks({
|
|
||||||
data:{sale_after_additional_status:'9',list_row:pageSize.value,page:page.value,refund_status:refund_status.value,...params.value},
|
|
||||||
url:"trusteeship/after_sales_list",
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
list.value=e.datas.datas_list;
|
|
||||||
total.value=e.datas.total;
|
|
||||||
loading.value=false;
|
|
||||||
list.value.forEach(item=>{
|
|
||||||
item.responsibility = true
|
|
||||||
})
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
loading.value=false;
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
loading.value=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
getDatas(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const handleSizeChange=(v)=>{
|
|
||||||
if(pageSize.value!=v){
|
|
||||||
pageSize.value=v;
|
|
||||||
getDatas(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const looksLogs=(data)=>{
|
|
||||||
logsloading.value=true;
|
|
||||||
logsState.value=true;
|
|
||||||
axioshooks({
|
|
||||||
data:{refund_id:data.xy_sale_after_additional_id},
|
|
||||||
url:"xy/sale_after_log",
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
logsList.value=e.datas;
|
|
||||||
logsloading.value=false;
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
logsloading.value=false;
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
logsloading.value=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const doDelivery=(data)=>{
|
|
||||||
draveState.value=true;
|
|
||||||
logsloading.value=true;
|
|
||||||
axioshooks({
|
|
||||||
data:{xy_sale_after_additional_id:data.xy_sale_after_additional_id},
|
|
||||||
url:"trusteeship/shipping_info",
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
DeliveryInfoList.value=Object.assign({},data,e.datas);
|
|
||||||
logsloading.value=false;
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
logsloading.value=false;
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
logsloading.value=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const handleCurrentChange=(v)=>{
|
|
||||||
if(page.value!=v){
|
|
||||||
getDatas(v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const DeliveryCancel=()=>{
|
|
||||||
draveState.value=false;
|
|
||||||
}
|
|
||||||
const DeliveryConfirm=()=>{
|
|
||||||
draveState.value=false;
|
|
||||||
getDatas(page.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
const onProcessing=(data)=>{
|
|
||||||
processData.value=data;
|
|
||||||
processState.value=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onJudgment=(data)=>{
|
|
||||||
judgState.value=data;
|
|
||||||
judgData.value=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onQuality=(data)=>{
|
|
||||||
let imei=data.imei1?data.imei1:data.imei2||data.sn;
|
|
||||||
router.push({path:'qualityWork',query:{imei:imei}});
|
|
||||||
}
|
|
||||||
|
|
||||||
const doProcess=(data)=>{
|
|
||||||
if(!processValue.value){
|
|
||||||
ElMessage('请选择处理结果');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!data.xy_sale_after_additional_id){
|
|
||||||
ElMessage('非法点击');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
axioshooks({
|
|
||||||
url:'trusteeship/exception_handling',
|
|
||||||
data:{address_accord_with:processValue.value,xy_sale_after_additional_id:data?.xy_sale_after_additional_id},
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
ElMessage("操作成功");
|
|
||||||
processData.value={};
|
|
||||||
processValue.value=1;
|
|
||||||
processState.value=false;
|
|
||||||
getDatas(page.value);
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const doJudg=(data)=>{
|
|
||||||
if(!judgValue.value.mode){
|
|
||||||
ElMessage('请选择处理结果');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!data.xy_sale_after_additional_id){
|
|
||||||
ElMessage('非法点击');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
axioshooks({
|
|
||||||
url:'trusteeship/judgment_responsibility',
|
|
||||||
data:{responsibility_type:judgValue.value.mode,xy_sale_after_additional_id:data?.xy_sale_after_additional_id,responsibility_explanation:judgValue.value.info,responsibility_img:judgValue.value.imageUrl},
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
ElMessage("操作成功");
|
|
||||||
processData.value={};
|
|
||||||
processValue.value=1;
|
|
||||||
processState.value=false;
|
|
||||||
getDatas(page.value);
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const beforeAvatarUpload=(rawFile)=>{
|
|
||||||
let types=["image/jpeg","image/png","image/gif","image/bmp","image/jpg"];
|
|
||||||
if(!types.includes(rawFile.type)){
|
|
||||||
ElMessage.error('图片格式有误!')
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if (rawFile.size / 1024 / 1024 > 2) {
|
|
||||||
ElMessage.error('图片超过 2MB 大小!')
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
initOss(rawFile).then((link)=>{
|
|
||||||
judgValue.value.imageUrl=link;
|
|
||||||
}).catch((err) => {
|
|
||||||
ElMessage(err.message);
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onConfirmReceipt=(data)=>{
|
|
||||||
receState.data=data;
|
|
||||||
receState.state=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const doRecive=(data)=>{
|
|
||||||
if(!receState.value){
|
|
||||||
ElMessage("请输入快递单号或说明");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!data.xy_sale_after_additional_id){
|
|
||||||
ElMessage('非法点击');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
axioshooks({
|
|
||||||
url:'trusteeship/receiving_goods',
|
|
||||||
data:{xy_sale_after_additional_id:data.xy_sale_after_additional_id||1,tracking_number:receState.value},
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
ElMessage("操作成功");
|
|
||||||
receState.value="";
|
|
||||||
receState.data={};
|
|
||||||
receState.state=false;
|
|
||||||
getDatas(page.value);
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.avatar-uploader .avatar {
|
|
||||||
width:80px;
|
|
||||||
height:80px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.salecontainer{
|
|
||||||
background:#F1F2F5;
|
|
||||||
flex:1;
|
|
||||||
display:flex;
|
|
||||||
flex-direction:column;
|
|
||||||
}
|
|
||||||
.saleordertopbox{
|
|
||||||
background: #fff;
|
|
||||||
padding:20px 20px 0;
|
|
||||||
}
|
|
||||||
.searchbox{
|
|
||||||
margin-top:5px;
|
|
||||||
display:grid;
|
|
||||||
align-items:center;
|
|
||||||
grid-gap: 10px;
|
|
||||||
grid-template-columns:3fr 3fr 1fr 1fr 4fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.receivingWorkbenchbox {
|
|
||||||
padding: 10px;
|
|
||||||
flex:1;
|
|
||||||
}
|
|
||||||
.topinput{
|
|
||||||
height:36px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imeiicondefault{
|
|
||||||
height:26px;
|
|
||||||
width:26px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
border-radius: 4px;
|
|
||||||
background: #f0f2f5;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.avatar-uploader .el-upload {
|
|
||||||
border: 1px dashed var(--el-border-color);
|
|
||||||
border-radius: 6px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
transition: var(--el-transition-duration-fast);
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar-uploader .el-upload:hover {
|
|
||||||
border-color: var(--el-color-primary);
|
|
||||||
}
|
|
||||||
.toolbox{
|
|
||||||
display:flex;
|
|
||||||
align-items:center;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding:20px 20px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-icon.avatar-uploader-icon {
|
|
||||||
font-size: 28px;
|
|
||||||
color: #8c939d;
|
|
||||||
width: 80px;
|
|
||||||
height:80px;
|
|
||||||
text-align: center;
|
|
||||||
background: #f1f1f1;
|
|
||||||
}
|
|
||||||
</style>
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,286 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="l-footer">
|
|
||||||
<div class="title" style="margin-bottom: 0">
|
|
||||||
<div class="text">商品图片</div>
|
|
||||||
</div>
|
|
||||||
<div class="img-box">
|
|
||||||
<div class="img-title">
|
|
||||||
<div class="l-t">
|
|
||||||
图片来源于拍照app
|
|
||||||
<i class="iconfont icon-shuaxin" @click="Refresh"></i>
|
|
||||||
</div>
|
|
||||||
<span @click="lookcode">查看手机条码</span>
|
|
||||||
</div>
|
|
||||||
<div class="imglist">
|
|
||||||
<draggable
|
|
||||||
v-model="srcListAccount"
|
|
||||||
style="display: inline-block"
|
|
||||||
v-if="srcListAccount.length"
|
|
||||||
@end="end"
|
|
||||||
>
|
|
||||||
<!-- 图片展示 -->
|
|
||||||
<transition-group>
|
|
||||||
<div
|
|
||||||
v-for="(item, ind) in srcListAccount"
|
|
||||||
:key="ind"
|
|
||||||
class="image-container"
|
|
||||||
>
|
|
||||||
<el-image
|
|
||||||
style="width: 100px; height: 100px; margin-right: 7px"
|
|
||||||
fit="cover"
|
|
||||||
:src="item"
|
|
||||||
:preview-src-list="srcListAccount"
|
|
||||||
/>
|
|
||||||
<el-button
|
|
||||||
icon="el-icon-delete"
|
|
||||||
class="delete-button"
|
|
||||||
style="z-index: 5"
|
|
||||||
@click="deleteImage(ind, $event)"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</transition-group>
|
|
||||||
</draggable>
|
|
||||||
<!-- 没有图片显示 -->
|
|
||||||
<div class="nothing" v-else>
|
|
||||||
<el-empty
|
|
||||||
:image-size="90"
|
|
||||||
description="暂无图片,可点击查看手机条码扫码获取照片"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<!-- 图片上传样式 -->
|
|
||||||
|
|
||||||
<div
|
|
||||||
class="image-upload"
|
|
||||||
v-loading="dialogVisible"
|
|
||||||
element-loading-spinner="el-icon-loading"
|
|
||||||
element-loading-background="rgba(0, 0, 0, 0.0)"
|
|
||||||
>
|
|
||||||
<el-upload
|
|
||||||
multiple
|
|
||||||
action=""
|
|
||||||
:show-file-list="false"
|
|
||||||
:http-request="handleUpload"
|
|
||||||
:before-upload="beforeAvatarUpload"
|
|
||||||
>
|
|
||||||
<el-button class="btn-upload" style="border: 2px #ccc dashed">
|
|
||||||
<i style="font-size: 31px" :class="dialogVisible?'':'el-icon-picture-outline'" />
|
|
||||||
</el-button>
|
|
||||||
</el-upload>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<el-dialog
|
|
||||||
width="390px"
|
|
||||||
title="条码"
|
|
||||||
:visible="printDate"
|
|
||||||
@opened="generateBarcode"
|
|
||||||
>
|
|
||||||
<div style="text-align: center">
|
|
||||||
<img id="barcode" width="333px" height="190px" alt="" src="" />
|
|
||||||
</div>
|
|
||||||
<div style="text-align: center">
|
|
||||||
<el-button round @click="printcode">打印条码</el-button>
|
|
||||||
<el-button round @click="barcode">刷新条码</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// import draggable from "vuedraggable";
|
|
||||||
import { back_print } from "@/api/shoppingman";
|
|
||||||
// import { upload_img } from "@/api/qualityInspectioncenter";
|
|
||||||
import { ElMessage } from 'element-plus';
|
|
||||||
// import * as imageConversion from "image-conversion";
|
|
||||||
export default {
|
|
||||||
props: ["dateOne", "srcList"],
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
printDate: false,
|
|
||||||
imgStatus: "",
|
|
||||||
srcListAccount: this.srcList,
|
|
||||||
dialogVisible: false,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
// draggable,
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
srcList: {
|
|
||||||
handler(old) {
|
|
||||||
this.srcListAccount = old;
|
|
||||||
},
|
|
||||||
deep: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
//查看手机条码
|
|
||||||
lookcode() {
|
|
||||||
this.printDate = true;
|
|
||||||
},
|
|
||||||
generateBarcode() {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
JsBarcode("#barcode", this.dateOne.serial_number, {
|
|
||||||
displayValue: true,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 获取条形码
|
|
||||||
barcode() {
|
|
||||||
this.generateBarcode();
|
|
||||||
this.$message.success("刷新成功");
|
|
||||||
},
|
|
||||||
// 打印条码
|
|
||||||
printcode() {
|
|
||||||
back_print({ res_id: this.dateOne.res_id }).then((res) => {
|
|
||||||
if (res.errcode == 0) {
|
|
||||||
this.$message.success("打印成功");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
//移动图片交换图片顺序
|
|
||||||
end() {
|
|
||||||
this.$emit("moveimglist", this.srcListAccount);
|
|
||||||
},
|
|
||||||
|
|
||||||
// 上传之前
|
|
||||||
beforeAvatarUpload(file) {
|
|
||||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
|
||||||
if (!isLt2M)
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
// 小于2M 不压缩
|
|
||||||
imageConversion.compressAccurately(file, 700).then((res) => {
|
|
||||||
resolve(res);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 照片上传
|
|
||||||
handleUpload(fileimg) {
|
|
||||||
this.dialogVisible = true;
|
|
||||||
|
|
||||||
if (this.srcListAccount) {
|
|
||||||
console.log(this.srcListAccount.length);
|
|
||||||
if (this.srcListAccount.length >= 9) {
|
|
||||||
this.$message.warning("上传图片数量不能超过九张");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
initOss(fileimg.file).then((url)=>{
|
|
||||||
this.srcListAccount.push(url);
|
|
||||||
this.dialogVisible = false;
|
|
||||||
ElMessage("上传成功");
|
|
||||||
}).catch((err)=>{
|
|
||||||
ElMessage(err.message);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 删除照片
|
|
||||||
deleteImage(ind, event) {
|
|
||||||
event.target.blur();
|
|
||||||
if (event.target.nodeName == "SPAN" || event.target.nodeName == "I") {
|
|
||||||
event.target.parentNode.blur();
|
|
||||||
}
|
|
||||||
this.srcListAccount.splice(ind, 1);
|
|
||||||
this.$message.warning("删除成功");
|
|
||||||
// this.uploadimg(1);
|
|
||||||
},
|
|
||||||
//刷新图片
|
|
||||||
Refresh() {
|
|
||||||
this.$emit("getimglist", 1);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang='scss'>
|
|
||||||
.l-footer {
|
|
||||||
border-radius: 6px;
|
|
||||||
background-color: #fff;
|
|
||||||
margin-top: 20px;
|
|
||||||
.img-box {
|
|
||||||
display: inline-block;
|
|
||||||
max-width: 635px;
|
|
||||||
margin-left: 20px;
|
|
||||||
padding-bottom: 15px;
|
|
||||||
.img-title {
|
|
||||||
min-width: 635px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
.l-t {
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #333333;
|
|
||||||
.icon-shuaxin {
|
|
||||||
color: #4091ff;
|
|
||||||
font-size: 18px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
span {
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #4091ff;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.imglist {
|
|
||||||
display: flex;
|
|
||||||
// align-items: center;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.image-container {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
// display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
image-container:hover {
|
|
||||||
background-color: rgba(0, 0, 0, 0.3);
|
|
||||||
}
|
|
||||||
.image-upload {
|
|
||||||
height: 100px;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
.image-upload ::v-deep .el-button {
|
|
||||||
width: 100px;
|
|
||||||
height: 100px;
|
|
||||||
}
|
|
||||||
.nothing {
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
.delete-button {
|
|
||||||
width: 20px;
|
|
||||||
// height: 100px;
|
|
||||||
padding: 10px 30px 10px 10px;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 10px;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
font-size: 18px;
|
|
||||||
color: white;
|
|
||||||
background-color: rgba(0, 0, 0, 0.3);
|
|
||||||
//opacity: 0; /* 初始时隐藏删除图标 */
|
|
||||||
transition: opacity 0.3s ease; /* 添加过渡效果 */
|
|
||||||
}
|
|
||||||
::v-deep .delete-button:hover {
|
|
||||||
//opacity: 1; /* 鼠标悬停时显示删除图标 */
|
|
||||||
//border-color: red;
|
|
||||||
color: white;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 19px;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
background: rgba(0, 0, 0, 0.3);
|
|
||||||
}
|
|
||||||
.delete-button:active {
|
|
||||||
// color: white;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
//上传图片加载图标
|
|
||||||
::v-deep .el-icon-loading {
|
|
||||||
font-size: 48px;
|
|
||||||
color:#ccc ;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,41 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="qcinputbox">
|
|
||||||
<el-button :type="type" round @click="onSelect" :disabled="disabled">
|
|
||||||
<slot></slot>
|
|
||||||
</el-button>
|
|
||||||
<el-date-picker type="date" :placeholder="placeholder" :disabled="disabled" style="min-width:150px" v-model.lazy="inputvalue" v-if="type=='primary'" @change="onInputChange"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
import {ref,reactive,watch,onMounted} from 'vue';
|
|
||||||
const props=defineProps(['value','placeholder','type','disabled']);
|
|
||||||
const $emit=defineEmits(['click','change']);
|
|
||||||
|
|
||||||
const inputvalue=ref("");
|
|
||||||
|
|
||||||
const {value,placeholder,type}=props;
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
if(value){
|
|
||||||
inputvalue.value=value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const onInputChange=(val)=>{
|
|
||||||
$emit('change',new Date(newval).getTime());
|
|
||||||
}
|
|
||||||
|
|
||||||
const onSelect=()=>{
|
|
||||||
$emit('click');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.qcinputbox{
|
|
||||||
display:flex;
|
|
||||||
align-items: stretch;
|
|
||||||
margin-right:10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="qcinputbox">
|
|
||||||
<el-button :type="type" round @click="onSelect" size="small" :disabled="disabled">
|
|
||||||
<slot></slot>
|
|
||||||
</el-button>
|
|
||||||
<el-input :placeholder="placeholder" size="small" style="width:150px" :disabled="disabled" v-model.lazy="inputvalue" v-if="type=='primary'" @change="onInputChange"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import {ref,reactive,watch,onMounted} from 'vue';
|
|
||||||
const {value,placeholder,type}=defineProps(['value','placeholder','type','disabled']);
|
|
||||||
const $emit=defineEmits(['click','change']);
|
|
||||||
|
|
||||||
|
|
||||||
const inputvalue=ref("");
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
if(value){
|
|
||||||
inputvalue.value=value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const onInputChange=(val)=>{
|
|
||||||
$emit('change',new Date(newval).getTime());
|
|
||||||
}
|
|
||||||
|
|
||||||
const onSelect=()=>{
|
|
||||||
$emit('click');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.qcinputbox{
|
|
||||||
display:flex;
|
|
||||||
align-items: stretch;
|
|
||||||
margin-right:10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,265 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="comparisonbox">
|
|
||||||
<div class="comparisontop">
|
|
||||||
<h4 class="comparisonitemtitle"> 售前质检报告</h4>
|
|
||||||
<h4 class="comparisonitemtitle"> 售后质检报告</h4>
|
|
||||||
</div>
|
|
||||||
<div class="comparisonitem">
|
|
||||||
<div class="comparisonitemmain">
|
|
||||||
<div v-for="im,i in data.new" :key="String(i)" class="comparisonitemmainitem">
|
|
||||||
<div class="comparisonitemmaintitle">{{im.qc_item}}({{im.oldnoabnormal}}项全部正常{{im.oldabnormal>0?','+im.oldabnormal+'项需注意':null}})</div>
|
|
||||||
<div v-for="citem,indexs in im.child" :key="String(indexs)" class="comparisonitemmainitemcontainer" >
|
|
||||||
<div class="comparisonitemmainitemtitle">{{citem.qc_item}}</div>
|
|
||||||
<div v-for="cim,cis in citem.child" :key="String(cis)" class="comparisonitemmainitemmain" :style="cim?.about==1?{background:'#fbf1ef',border:'1px dashed red'}:null" >
|
|
||||||
<div class="comparisonitemmainitemattrname">{{cim.qc_item}}</div>
|
|
||||||
<div class="comparisonitemmainitemattrline"/>
|
|
||||||
<div class="comparisonitemmainitemattrvalue">{{cim.oldvalue}}{{cim.oldinputStatus&&cim.oldinputDate!=''?cim.oldinputDate:null}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="comparisonitemmain">
|
|
||||||
<div v-for="im,i in data.new" :key="String(i)" class="comparisonitemmainitem">
|
|
||||||
<div class="comparisonitemmaintitle">{{im.qc_item}}({{im.noabnormalnum}}项全部正常{{im.abnormalnum>0?','+im.abnormalnum+'项需注意':null}})</div>
|
|
||||||
<div v-for="citem,indexs in im.child" :key="String(indexs)" class="comparisonitemmainitemcontainer" >
|
|
||||||
<div class="comparisonitemmainitemtitle">{{citem.qc_item}}</div>
|
|
||||||
<div v-for="cim,cis in citem.child" :key="String(cis)" class="comparisonitemmainitemmain" :style="cim?.about==1?{background:'#fbf1ef',border:'1px dashed red'}:null">
|
|
||||||
<div class="comparisonitemmainitemattrname">{{cim.qc_item}}</div>
|
|
||||||
<div class="comparisonitemmainitemattrline"/>
|
|
||||||
<div class="comparisonitemmainitemattrvalue">{{cim.value}}{{cim.inputStatus&&cim.inputDate!=''?cim.inputDate:null}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="comparisonfooter">
|
|
||||||
<div v-if="data.totalabount>0" class="comparisonfooterdesc">比对结果:有{{data.totalabount}}项不一致</div>
|
|
||||||
<div v-if="props.responsibility_type!='1'" class="comparisonfooterbtnbox">
|
|
||||||
<el-button @click="onXiachi">瑕疵图</el-button>
|
|
||||||
<el-button @click="onNoPanze">暂不判责</el-button>
|
|
||||||
<el-button type="primary" @click="onDoPanzePrint">判责并打印质检码</el-button>
|
|
||||||
</div>
|
|
||||||
<div v-else class="comparisonfooterbtnbox">
|
|
||||||
<el-button @click="onNoPanze">关闭</el-button>
|
|
||||||
<el-button @click="onXiachi">瑕疵图</el-button>
|
|
||||||
<el-button type="primary" @click="print">打印质检码</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import {ref,reactive,onMounted,computed,watch} from 'vue';
|
|
||||||
const props=defineProps(["comparisondata","responsibility_type"]);
|
|
||||||
const $emit=defineEmits(["print","onNoPanze","onDoPanzePrint",'onXiachi']);
|
|
||||||
|
|
||||||
|
|
||||||
const data=reactive({
|
|
||||||
old:[],
|
|
||||||
new:[]
|
|
||||||
});
|
|
||||||
|
|
||||||
watch(props,(newval)=>{
|
|
||||||
formatdatas(newval.comparisondata);
|
|
||||||
},{deep:true})
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
formatdatas(props.comparisondata);
|
|
||||||
});
|
|
||||||
|
|
||||||
const onXiachi=()=>{
|
|
||||||
$emit("onXiachi")
|
|
||||||
}
|
|
||||||
|
|
||||||
const formatdatas=(datas)=>{
|
|
||||||
|
|
||||||
let newdatas=[];
|
|
||||||
datas.new.xy_qc_item.map((h,)=>{
|
|
||||||
let child=[];
|
|
||||||
let noabnormal=0;
|
|
||||||
let abnormal=0;
|
|
||||||
h.child.map((c)=>{
|
|
||||||
let tchild=[];
|
|
||||||
c.child.map((t)=>{
|
|
||||||
let dchild=[];
|
|
||||||
t.qc_item_value.map((d)=>{
|
|
||||||
t.abnormal=d.abnormal;
|
|
||||||
t.inputDate=d.inputDate;
|
|
||||||
t.inputStatus=d.inputStatus;
|
|
||||||
if(d.qc_item_value.indexOf('手填')>-1){
|
|
||||||
dchild.push(datas.new.battery_cycle>-1);
|
|
||||||
}else if(d.qc_item_value.indexOf('到20XX')>-1){
|
|
||||||
dchild.push(datas.new.warranty_end_time);
|
|
||||||
}else{
|
|
||||||
dchild.push(d.qc_item_value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if(t.abnormal==1){
|
|
||||||
abnormal++;
|
|
||||||
}else{
|
|
||||||
noabnormal++;
|
|
||||||
}
|
|
||||||
tchild.push({qc_item:t.qc_item,value:dchild.join(',')});
|
|
||||||
});
|
|
||||||
child.push({qc_item:c.qc_item ,child:tchild});
|
|
||||||
});
|
|
||||||
newdatas.push({qc_item:h.qc_item ,child:child,abnormalnum:abnormal,noabnormalnum:noabnormal});
|
|
||||||
});
|
|
||||||
|
|
||||||
let totalabount=0;
|
|
||||||
newdatas.map((h,i)=>{
|
|
||||||
h.oldabnormal=0;
|
|
||||||
h.oldnoabnormal=0;
|
|
||||||
const oldh=datas.old.xy_qc_item.find((f)=>f.qc_item==h.qc_item);
|
|
||||||
h.child.map((c,ii)=>{
|
|
||||||
const oldc=oldh.child.find((f)=>f.qc_item==c.qc_item);
|
|
||||||
c.child.map((t)=>{
|
|
||||||
const oldt=oldc.child.find((f)=>f.qc_item==t.qc_item);
|
|
||||||
let oldvalues=[];
|
|
||||||
oldt.qc_item_value.map((d)=>{
|
|
||||||
t.oldabnormal=d.abnormal;
|
|
||||||
t.oldinputDate=d.oldinputDate;
|
|
||||||
t.oldinputStatus=d.oldinputStatus;
|
|
||||||
if(d.qc_item_value.indexOf('手填')>-1){
|
|
||||||
oldvalues.push(datas.old.battery_cycle||"暂无");
|
|
||||||
}else if(d.qc_item_value.indexOf('到20XX')>-1){
|
|
||||||
oldvalues.push(datas.old.warranty_end_time||"暂无");
|
|
||||||
}else{
|
|
||||||
oldvalues.push(d.qc_item_value);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
if(t.oldabnormal==1){
|
|
||||||
h.oldabnormal++;
|
|
||||||
}else{
|
|
||||||
h.oldnoabnormal++;
|
|
||||||
}
|
|
||||||
t.oldvalue=oldvalues.join(",");
|
|
||||||
if(t.value!=t.oldvalue){
|
|
||||||
t.about=1;
|
|
||||||
totalabount+=1;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
data.new=newdatas;
|
|
||||||
data.totalabount=totalabount;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onDoPanzePrint=()=>{
|
|
||||||
$emit("onDoPanzePrint");
|
|
||||||
}
|
|
||||||
|
|
||||||
const onNoPanze=()=>{
|
|
||||||
$emit("onNoPanze");
|
|
||||||
}
|
|
||||||
|
|
||||||
const print=()=>{
|
|
||||||
$emit("print");
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.comparisonbox{
|
|
||||||
display:flex;
|
|
||||||
align-items:stretch;
|
|
||||||
flex:1;
|
|
||||||
flex-direction:column;
|
|
||||||
max-height:520px;
|
|
||||||
.comparisontop{
|
|
||||||
display:flex;
|
|
||||||
align-items:stretch;
|
|
||||||
flex:1;
|
|
||||||
&:first-child{
|
|
||||||
margin-right:5px;
|
|
||||||
}
|
|
||||||
&:nth-child(2){
|
|
||||||
margin-left:5px;
|
|
||||||
}
|
|
||||||
.comparisonitemtitle{
|
|
||||||
flex:1;
|
|
||||||
color:#101010;
|
|
||||||
font-weight:bold;
|
|
||||||
font-size:15px;
|
|
||||||
margin:0 0 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.comparisonitem{
|
|
||||||
position: relative;
|
|
||||||
flex:1;
|
|
||||||
display:flex;
|
|
||||||
align-items:stretch;
|
|
||||||
flex:1;
|
|
||||||
overflow-y:scroll;
|
|
||||||
min-height:300px;
|
|
||||||
max-height:520px;
|
|
||||||
&::-webkit-scrollbar{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.comparisonitemmain{
|
|
||||||
height: 100%;
|
|
||||||
padding:12px;
|
|
||||||
background:#fafafa;
|
|
||||||
flex:1;
|
|
||||||
|
|
||||||
&:first-child{
|
|
||||||
margin-right:5px;
|
|
||||||
}
|
|
||||||
&:nth-child(2){
|
|
||||||
margin-left:5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.comparisonitemmaintitle{
|
|
||||||
font-size:15px;
|
|
||||||
color:#101010;
|
|
||||||
}
|
|
||||||
.comparisonitemmainitemtitle{
|
|
||||||
font-size:14px;
|
|
||||||
color:#333;
|
|
||||||
}
|
|
||||||
.comparisonitemmainitemmain{
|
|
||||||
display:flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items:center;
|
|
||||||
padding:5px 12px;
|
|
||||||
margin:5px 0;
|
|
||||||
border-radius:6px;
|
|
||||||
}
|
|
||||||
.comparisonitemmainitemcontainer{
|
|
||||||
padding:5px 12px;
|
|
||||||
}
|
|
||||||
.comparisonitemmainitemattrname{
|
|
||||||
font-size:14px;
|
|
||||||
color:#666;
|
|
||||||
}
|
|
||||||
.comparisonitemmainitemabout{
|
|
||||||
position: absolute;
|
|
||||||
background:#fbf1ef;
|
|
||||||
border:1px dashed red;
|
|
||||||
height:36px;
|
|
||||||
left:0;
|
|
||||||
right:0;
|
|
||||||
z-index:-1;
|
|
||||||
}
|
|
||||||
.comparisonitemmainitemattrline{
|
|
||||||
|
|
||||||
flex:1;
|
|
||||||
border-top:1px dashed #e5e5e5;
|
|
||||||
margin:0 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.comparisonfooterdesc{
|
|
||||||
font-size:16px;
|
|
||||||
color:red;
|
|
||||||
font-weight:bold;
|
|
||||||
margin:20px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.comparisonfooterbtnbox{
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,281 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="qcTablebox">
|
|
||||||
<div v-for="(it, ix) in tableData" :key="ix" class="qctableitem">
|
|
||||||
<div class="qctableitemtitle">{{it.qc_item}}</div>
|
|
||||||
<div class="qctableitemmain">
|
|
||||||
<div class="qctableitemoneitem" v-for="ict,ici in it.child" :key="ici">
|
|
||||||
<div class="qctableitemonemainonetitle">
|
|
||||||
{{ict.qc_item }}
|
|
||||||
</div>
|
|
||||||
<div class="qctableitemonemainonemain">
|
|
||||||
<div v-for="item,icis in ict.child" :key="icis" class="qctableitemonemainonemainitem">
|
|
||||||
<div class="qctableitemonemainonemaintitle">
|
|
||||||
{{item.qc_item}}
|
|
||||||
</div>
|
|
||||||
<div class="qctableitemonemaintwoitemmain">
|
|
||||||
<div v-for="iv,ind in item.qc_item_value" :label="iv.qc_item_value_id" :key="ind" >
|
|
||||||
<QcInput placeholder="请输入" :disabled="disabled" :value="getValue(item,iv)" :battery_cycle="battery_cycle" :type="getType(item,iv)" v-if="iv.qc_item_value && iv.qc_item_value.indexOf('手填')>-1" @change="onInputChange(item,iv,$event)" @click="onSelect(item,iv)">
|
|
||||||
{{ iv.qc_item_value }}
|
|
||||||
</QcInput>
|
|
||||||
<QcDate placeholder="请选择" :disabled="disabled" style="width:150px" :type="getType(item,iv)" :warranty_end_time="warranty_end_time" :value="getValue(item,iv)" v-else-if="iv.qc_item_value.indexOf('到20XX年')>-1" @click="onSelect(item,iv)" @change="onInputChange(item,iv,$event)">
|
|
||||||
{{ iv.qc_item_value }}
|
|
||||||
</QcDate>
|
|
||||||
<el-button :disabled="disabled" :type="getType(item,iv)" @click="onSelect(item,iv)" size="small" round v-else >
|
|
||||||
{{ iv.qc_item_value }}
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import {reactive,watch,onMounted,onUpdated,ref,computed,watchEffect} from 'vue';
|
|
||||||
import QcInput from "./qcInput.vue";
|
|
||||||
import QcDate from "./qcDate.vue";
|
|
||||||
import {ElMessage} from "element-plus";
|
|
||||||
const props=defineProps({'is_easy':String,'xyQcItem':Array,'disabled':Boolean,'battery_cycle':String,'warranty_end_time':String});
|
|
||||||
const $emit=defineEmits(['change']);
|
|
||||||
|
|
||||||
const {is_easy,xyQcItem,disabled,warranty_end_time,battery_cycle}=props;
|
|
||||||
|
|
||||||
const tableData=ref([]);
|
|
||||||
const tablevalue=ref([]);
|
|
||||||
// 使用watch
|
|
||||||
watch(() =>props.xyQcItem, (newCount, oldCount) => {
|
|
||||||
let newxyQcItem=Object.assign([],newCount);
|
|
||||||
if(newxyQcItem.length>0){
|
|
||||||
tablevalue.value=[];
|
|
||||||
formatdatas(newxyQcItem);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
watch(tableData,async (newval,oldval)=>{
|
|
||||||
$emit('change',{datas:newval,value:tablevalue.value});
|
|
||||||
});
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
let newxyQcItem=Object.assign([],xyQcItem);
|
|
||||||
if(newxyQcItem.length>0){
|
|
||||||
tablevalue.value=[];
|
|
||||||
formatdatas(newxyQcItem);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const onInputChange=(item,iv,e)=>{
|
|
||||||
let newvalue=e;
|
|
||||||
if(!isNaN(e)){
|
|
||||||
if(iv.qc_item_value.indexOf('手填')>-1||iv.qc_item_value.indexOf('到20XX')>-1){
|
|
||||||
if(tablevalue.value[item.qc_item_id]){
|
|
||||||
const find= tablevalue.value[item.qc_item_id].find((f)=>f.id==iv.qc_item_value_id);
|
|
||||||
if(find){
|
|
||||||
find.key = iv.qc_item_value
|
|
||||||
find.value=newvalue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
formatdatas(props.xyQcItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const formatdatas=(datas)=>{
|
|
||||||
let newxyQcItem=Object.assign([],datas);
|
|
||||||
newxyQcItem.map((h)=>{
|
|
||||||
if(h.child){
|
|
||||||
h.child.map((c)=>{
|
|
||||||
if(c.child){
|
|
||||||
c.child.map((t)=>{
|
|
||||||
if(t.qc_item_value){
|
|
||||||
const find=tablevalue.value[t.qc_item_id];
|
|
||||||
if(find){
|
|
||||||
t.value=find;
|
|
||||||
}else{
|
|
||||||
if(c.qc_item.indexOf("多选")>-1){
|
|
||||||
let defaultdata=[];
|
|
||||||
t.qc_item_value.map((d)=>{
|
|
||||||
if(d.default==1){
|
|
||||||
defaultdata.push({id:d.qc_item_value_id});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if(defaultdata.length>0){
|
|
||||||
t.value=defaultdata;
|
|
||||||
}else{
|
|
||||||
// console.log(t,888);
|
|
||||||
t.value=[t.qc_item_value[0].qc_item_value_id];
|
|
||||||
}
|
|
||||||
tablevalue.value[t.qc_item_id]=t.value;
|
|
||||||
}else{
|
|
||||||
let defaultdata=t.qc_item_value.find((f)=>f.default==1);
|
|
||||||
let itemdata=defaultdata;
|
|
||||||
if(defaultdata){
|
|
||||||
itemdata=defaultdata;
|
|
||||||
}else{
|
|
||||||
// console.log(t,9090);
|
|
||||||
itemdata=t.qc_item_value[0].qc_item_value_id;
|
|
||||||
}
|
|
||||||
t.value=[{id:itemdata.qc_item_value_id}];
|
|
||||||
t.abnormal=itemdata.abnormal;
|
|
||||||
tablevalue.value[t.qc_item_id]=t.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
tableData.value=newxyQcItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
const onSelect=(item,iv)=>{
|
|
||||||
if(item.qc_item.indexOf("多选")>-1){
|
|
||||||
if(tablevalue.value[item.qc_item_id]){
|
|
||||||
const find= tablevalue.value[item.qc_item_id].find((f)=>f.id==iv.qc_item_value_id);
|
|
||||||
if(find){
|
|
||||||
if(tablevalue.value[item.qc_item_id].length>1){
|
|
||||||
tablevalue.value[item.qc_item_id]=tablevalue.value[item.qc_item_id].filter((f)=>f.id!=iv.qc_item_value_id);
|
|
||||||
}else{
|
|
||||||
ElMessage("至少留一个");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(iv.qc_item_value=="正常"){
|
|
||||||
tablevalue.value[item.qc_item_id]=[{id:iv.qc_item_value_id}];
|
|
||||||
}else{
|
|
||||||
const findzc=item.qc_item_value.find((f)=>f.qc_item_value=="正常");
|
|
||||||
const nozcs=tablevalue.value[item.qc_item_id].filter((f)=>f.id!=findzc.qc_item_value_id);
|
|
||||||
nozcs.push({id:iv.qc_item_value_id});
|
|
||||||
tablevalue.value[item.qc_item_id]=nozcs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
tablevalue.value[item.qc_item_id]=[{id:iv.qc_item_value_id}];
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
tablevalue.value[item.qc_item_id]=[{id:iv.qc_item_value_id}];
|
|
||||||
}
|
|
||||||
|
|
||||||
formatdatas(props.xyQcItem);
|
|
||||||
|
|
||||||
}
|
|
||||||
const getType= (item,iv)=>{
|
|
||||||
if(tablevalue.value[item.qc_item_id]){
|
|
||||||
const find=tablevalue.value[item.qc_item_id].find((f)=>f.id==iv.qc_item_value_id);
|
|
||||||
return find?'primary':null
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
// 质检项点击
|
|
||||||
const getValue=(item,iv)=>{
|
|
||||||
if(tablevalue.value[item.qc_item_id]){
|
|
||||||
const find=tablevalue.value[item.qc_item_id].find((f)=>f.id==iv.qc_item_value_id);
|
|
||||||
if(find){
|
|
||||||
if(find.value){
|
|
||||||
return find.value;
|
|
||||||
}else{
|
|
||||||
if(iv.qc_item_value.indexOf("手填")>-1){
|
|
||||||
return battery_cycle;
|
|
||||||
}else if(iv.qc_item_value.indexOf("到20XX")>-1){
|
|
||||||
return props.warranty_end_time
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(iv.qc_item_value.indexOf("手填")>-1){
|
|
||||||
return battery_cycle;
|
|
||||||
}else if(iv.qc_item_value.indexOf("到20XX")>-1){
|
|
||||||
return props.warranty_end_time;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(iv.qc_item_value.indexOf("手填")>-1){
|
|
||||||
return battery_cycle;
|
|
||||||
}else if(iv.qc_item_value.indexOf("到20XX")>-1){
|
|
||||||
return props.warranty_end_time;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
|
|
||||||
.qcTablebox{
|
|
||||||
min-height:200px;
|
|
||||||
}
|
|
||||||
.qctableitem{
|
|
||||||
display:flex;
|
|
||||||
flex-direction: column;
|
|
||||||
border:1px solid #e5e5e5;
|
|
||||||
.qctableitemtitle{
|
|
||||||
padding:12px 20px;
|
|
||||||
background:#F1F2F5;
|
|
||||||
font-size:18px;
|
|
||||||
color:#101010;
|
|
||||||
border-bottom:1px solid #e5e5e5;
|
|
||||||
|
|
||||||
}
|
|
||||||
.qctableitemmain{
|
|
||||||
.qctableitemoneitem{
|
|
||||||
display:flex;
|
|
||||||
align-items: stretch;
|
|
||||||
}
|
|
||||||
.qctableitemonemainonetitle{
|
|
||||||
font-size:14px;
|
|
||||||
color:#101010;
|
|
||||||
min-height:60px;
|
|
||||||
display:flex;
|
|
||||||
align-items:center;
|
|
||||||
padding:12px;
|
|
||||||
justify-content: center;
|
|
||||||
flex:1.5;
|
|
||||||
border-right:1px solid #e5e5e5;
|
|
||||||
box-sizing: border-box;
|
|
||||||
border-bottom: 1px solid #e5e5e5;
|
|
||||||
}
|
|
||||||
.qctableitemonemainonemain{
|
|
||||||
flex:8;
|
|
||||||
align-items: stretch;
|
|
||||||
display:flex;
|
|
||||||
flex-direction: column;
|
|
||||||
.qctableitemonemainonemainitem{
|
|
||||||
align-items: stretch;
|
|
||||||
display:flex;
|
|
||||||
}
|
|
||||||
.qctableitemonemainonemaintitle{
|
|
||||||
font-size:14px;
|
|
||||||
color:#101010;
|
|
||||||
min-height:60px;
|
|
||||||
display:flex;
|
|
||||||
padding:12px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
align-items:center;
|
|
||||||
justify-content: center;
|
|
||||||
flex:1.5;
|
|
||||||
border-right:1px solid #e5e5e5;
|
|
||||||
border-bottom: 1px solid #e5e5e5;
|
|
||||||
}
|
|
||||||
.qctableitemonemaintwoitemmain{
|
|
||||||
flex:7;
|
|
||||||
display:flex;
|
|
||||||
flex-wrap:wrap;
|
|
||||||
align-items: flex-start;
|
|
||||||
justify-content: flex-start;
|
|
||||||
gap:10px;
|
|
||||||
padding:12px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
border-bottom: 1px solid #e5e5e5;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,159 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="qcreport">
|
|
||||||
<div class="qcHead">
|
|
||||||
<div style="font-size: 16px;font-weight: bold">{{props.title}}</div>
|
|
||||||
<div v-if="quilyDate.stuff_status">
|
|
||||||
<span>
|
|
||||||
<span style="font-size: 30px;font-weight: 700" :style="statusTextStyle" >{{props.quilyDate.stuff_status}}</span><span v-show="props.quilyDate.stuff_status !=='不合格'">新·</span>{{
|
|
||||||
props.quilyDate.use_trace }}</span>
|
|
||||||
</div>
|
|
||||||
<div v-if="data.abnormalnum > 0"
|
|
||||||
style="font-size: 16px;margin-top: 16px;color: #CC2E2E">异常质检项 <span v-if="data.abnormalnum>0">·
|
|
||||||
{{ data.abnormalnum}}</span></div>
|
|
||||||
<div v-for="(item, index) in data.product_details_date_list" :key="index + 'e'">
|
|
||||||
<div v-for="(item1, index1) in item.exception_item" v-if="item.exception_item.length > 0"
|
|
||||||
:key="index1 + 'f'">
|
|
||||||
<div v-if="item1.msg">
|
|
||||||
<div style="font-size: 13px;color: #CC2E2E;margin-top: 10px">
|
|
||||||
<span
|
|
||||||
style="background-color: #CC2E2E;margin-right: 3px;border-radius: 50%;font-size: 12px">11</span>
|
|
||||||
<span>{{ item1.label }}</span>
|
|
||||||
</div>
|
|
||||||
<div style="padding-left: 10px;font-size: 12px;margin-top: 12px">{{ item1.msg }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div style="font-size: 16px;margin-top: 16px" v-if="props.quilyDate.stuff_status">全部质检项 · {{ data.quailyLength }}</div>
|
|
||||||
<div v-for="(item, index) in data.product_details_date_list" :key="index + 'g'"
|
|
||||||
style="margin-top: 5px" v-if="props.quilyDate.stuff_status" >
|
|
||||||
<div style="display: flex;justify-content: space-between">
|
|
||||||
<span><span
|
|
||||||
style="background-color: black;font-size: 12px;color: black;border-radius: 50%">11</span>
|
|
||||||
<span>{{ item.label }}</span></span>
|
|
||||||
<span v-if="item.exception_item.length > 0" style="color: #CC2E2E">{{ item.exception_item.length
|
|
||||||
}} 项需注意</span>
|
|
||||||
<span v-if="item.normal_item.length > 0" style="color: #55CCBC">{{ item.normal_item.length }}
|
|
||||||
项正常</span>
|
|
||||||
</div>
|
|
||||||
<div v-for="(item1, index1) in item.exception_item" :key="index1 + 'h'"
|
|
||||||
style="padding-left: 7px;color: #CC2E2E;font-size: 12px;margin-top: 8px">
|
|
||||||
<div style="display: flex;justify-content: space-between;">
|
|
||||||
<span style="z-index: 20;background-color: #FFFEF3;padding-right: 3px">{{ item1.label
|
|
||||||
}}</span>
|
|
||||||
<span style="z-index: 20;background-color: #FFFEF3;padding-left: 3px">{{ item1.value
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="dashed-link" style="" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="qcFooter" v-if="quilyDate.stuff_status">
|
|
||||||
<span style="">
|
|
||||||
{{data.versiondata}}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div v-else class="qcemptybox">
|
|
||||||
暂无质检
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { reactive,ref,watch,onMounted,computed,watchEffect} from 'vue';
|
|
||||||
const props=defineProps({quilyDate:Object,title:String});
|
|
||||||
|
|
||||||
const data=reactive({
|
|
||||||
quailyLength:0,
|
|
||||||
abnormalnum:0,
|
|
||||||
product_details_date_list:[],
|
|
||||||
versiondata:"国行"
|
|
||||||
});
|
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
formatdatas(props.quilyDate);
|
|
||||||
});
|
|
||||||
|
|
||||||
watch(props,(newval,oldval)=>{
|
|
||||||
formatdatas(newval.quilyDate);
|
|
||||||
},{deep:true});
|
|
||||||
|
|
||||||
const statusTextStyle = computed(() => {
|
|
||||||
return {
|
|
||||||
color: props.quilyDate.stuff_status == '不合格' ? '#CC2E2E' : '#000'
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
const formatdatas=(datas)=>{
|
|
||||||
data.quailyLength=0;
|
|
||||||
data.abnormalnum=0;
|
|
||||||
data.product_details_date_list=[];
|
|
||||||
data.versiondata="国行";
|
|
||||||
console.log(datas,555);
|
|
||||||
|
|
||||||
let list=[];
|
|
||||||
let total=0;
|
|
||||||
let abnormal=0;
|
|
||||||
let versiondata="国行";
|
|
||||||
if( datas&&datas.xy_qc_item){
|
|
||||||
datas.xy_qc_item.map((h,index)=>{
|
|
||||||
let listitem={label:h.qc_item,exception_item:[],total:0,normal_item:[]};
|
|
||||||
if(h.child){
|
|
||||||
h.child.map((t)=>{
|
|
||||||
if(t.child){
|
|
||||||
t.child.map((d)=>{
|
|
||||||
if(d.qc_item_value){
|
|
||||||
d.qc_item_value.map((v)=>{
|
|
||||||
if(v.abnormal==1){
|
|
||||||
abnormal+=1;
|
|
||||||
listitem.exception_item.push({label:d.qc_item,value:v.qc_item_value,msg:v.fault_desc});
|
|
||||||
}else{
|
|
||||||
listitem.normal_item.push({label:d.qc_item,value:v.qc_item_value});
|
|
||||||
}
|
|
||||||
total+=1;
|
|
||||||
if(d.qc_item=="版本/来源"){
|
|
||||||
versiondata=v.qc_item_value;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
list.push(listitem);
|
|
||||||
});
|
|
||||||
data.versiondata=versiondata;
|
|
||||||
data.product_details_date_list=list;
|
|
||||||
data.quailyLength=total;
|
|
||||||
data.abnormalnum=abnormal;
|
|
||||||
console.log(list,"list",abnormal,total);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.qcreport {
|
|
||||||
.qcHead {
|
|
||||||
padding: 10px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.qcFooter {
|
|
||||||
border-radius: 0 0 5px 5px;
|
|
||||||
font-size: 16px;
|
|
||||||
text-align: center;
|
|
||||||
font-weight: 600;
|
|
||||||
padding-top: 8px;
|
|
||||||
padding-bottom: 8px;
|
|
||||||
margin-top: 15px;
|
|
||||||
background: #4091FF;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.qcemptybox{
|
|
||||||
display:flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding:30px 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,249 +0,0 @@
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
<!-- <div> {{ arrDta }} </div> -->
|
|
||||||
<!-- <div>{{ tableLabellisttes }}</div> -->
|
|
||||||
<el-row>
|
|
||||||
<el-col>
|
|
||||||
<el-table :data="show == '1'
|
|
||||||
? arrDta.filter((el) => {
|
|
||||||
return el.is_easy == 1;
|
|
||||||
})
|
|
||||||
: arrDta
|
|
||||||
" style="width: 100%" :span-method="mergeRowMethod2" border>
|
|
||||||
<el-table-column v-for="(item, index) in tableLabellisttes" :key="index" :prop="item.param"
|
|
||||||
:label="item.label" :align="item.align" :width="item.width" :min-width="item.width2">
|
|
||||||
<template v-slot:default="{ row }">
|
|
||||||
<div v-if="row.title === '版本'" ref="rowBanben" />
|
|
||||||
<span v-if="item.param == 'value' && row['child']&&row['child'].length >= 1">
|
|
||||||
<span v-for="(e, i) in row['child']" :key="i" class="btnclass" style="margin: 10px 10px 5px 12px">
|
|
||||||
<el-button v-if="row['attr_name'].indexOf('多选') != -1" class="buttonDiv" plain round
|
|
||||||
:type="row['value'].includes(e.attr_name) ? 'primary' : ''" style="margin: 6px 0 6px 0"
|
|
||||||
@click="disabled?null:brandclick($event, e, row['attr_name'], row)">{{ e.attr_name }}
|
|
||||||
</el-button>
|
|
||||||
<el-button v-else-if="row['attr_name'].indexOf('多选') == -1" class="buttonDiv" plain round
|
|
||||||
:type="row['value'] == e['option_name'] ? 'primary' : ''"
|
|
||||||
style="margin: 6px 0 6px 0;display: inline-block"
|
|
||||||
@click="brandclick($event, e, row['attr_name'], row)">{{ e.attr_name }}</el-button>
|
|
||||||
<span v-if="row['value'] === '苹果(手填)' || row['value'] === '到20XX年-XX-XX' || row['value'] === '在保(手填)'
|
|
||||||
|| row['value'] === '手填'
|
|
||||||
|| row['value'] == '运行内存(手填)'
|
|
||||||
|| row['value'] == '硬盘容量(手填)'
|
|
||||||
|| row['value'] == '容量(手填)'
|
|
||||||
|| row['value'] == 'CPU型号(手填)'
|
|
||||||
|| row['value'] == '分辨率(手填)'
|
|
||||||
|| row['value'] == '显卡型号(手填)'
|
|
||||||
|| row['value'] == '屏幕尺寸(手填)'
|
|
||||||
|| row['value'] == '尺寸(手填)'
|
|
||||||
|| row['value'] == '刷新率(手填)'
|
|
||||||
">
|
|
||||||
<span v-if="e.qc_item_value === '苹果(手填)' || e.qc_item_value === '到20XX年-XX-XX' || e.qc_item_value === '在保(手填)' || e.qc_item_value == '手填'
|
|
||||||
|| e.qc_item_value == '运行内存(手填)'
|
|
||||||
|| e.qc_item_value == '硬盘容量(手填)'
|
|
||||||
|| e.qc_item_value == '容量(手填)'
|
|
||||||
|| e.qc_item_value == 'CPU型号(手填)'
|
|
||||||
|| e.qc_item_value == '分辨率(手填)'
|
|
||||||
|| e.qc_item_value == '显卡型号(手填)'
|
|
||||||
|| e.qc_item_value == '屏幕尺寸(手填)'
|
|
||||||
|| e.qc_item_value == '尺寸(手填)'
|
|
||||||
|| e.qc_item_value == '刷新率(手填)'
|
|
||||||
">
|
|
||||||
<el-input v-if="e.inputStatus
|
|
||||||
|| row['value'] === '苹果(手填)'
|
|
||||||
|| row['value'] === '到20XX年-XX-XX'
|
|
||||||
|| row['value'] === '在保(手填)'
|
|
||||||
|| row['value'] === '手填'
|
|
||||||
|| row['value'] == '运行内存(手填)'
|
|
||||||
|| row['value'] == '硬盘容量(手填)'
|
|
||||||
|| row['value'] == '容量(手填)'
|
|
||||||
|| row['value'] == 'CPU型号(手填)'
|
|
||||||
|| row['value'] == '分辨率(手填)'
|
|
||||||
|| row['value'] == '显卡型号(手填)'
|
|
||||||
|| row['value'] == '屏幕尺寸(手填)'
|
|
||||||
|| row['value'] == '尺寸(手填)'
|
|
||||||
|| row['value'] == '刷新率(手填)'
|
|
||||||
" v-model="e.inputDate" size="small" style="width: 120px;margin-left: 5px"
|
|
||||||
@blur="inpuStatus(e)" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
<span v-else>
|
|
||||||
{{ row[item.param] ? row[item.param] : '/' }}
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
</el-table>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
import { defineProps, ref, watch, reactive, defineEmits } from 'vue';
|
|
||||||
|
|
||||||
const { arrDta, high, show ,disabled} = defineProps(['arrDta', 'high', 'show','disabled'])
|
|
||||||
const emit = defineEmits(['inpuStatus', 'get_match_version_type', 'brandclick'])
|
|
||||||
console.log(arrDta, 'data==========', show)
|
|
||||||
const tableLabellisttes = ref([
|
|
||||||
{ label: "", param: "title", align: "center", width: 100, show: false },
|
|
||||||
{
|
|
||||||
label: "",
|
|
||||||
param: "attr_name",
|
|
||||||
align: "center",
|
|
||||||
width: 130,
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
{ label: "", param: "value", align: "left", width2: 580, show: true },
|
|
||||||
],
|
|
||||||
)
|
|
||||||
// 可以直接侦听一个 ref
|
|
||||||
watch('arrDta', async (newval) => {
|
|
||||||
console.log(newval, 'newval--------------');
|
|
||||||
})
|
|
||||||
|
|
||||||
const inpuStatus = (e) => {
|
|
||||||
emit("inpuStatus", e);
|
|
||||||
}
|
|
||||||
const brandclick = (e, v, name, r) => {
|
|
||||||
if(disabled){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (v.attr_id === "版本/来源") {
|
|
||||||
emit("get_match_version_type", v.qc_item_value);
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
v.qc_item_value === "苹果(手填)" ||
|
|
||||||
v.qc_item_value === "在保(手填)" ||
|
|
||||||
v.qc_item_value === "到20XX年-XX-XX"
|
|
||||||
) {
|
|
||||||
// this.$set(v, "inputStatus", true);
|
|
||||||
v.inputStatus = true;
|
|
||||||
} else {
|
|
||||||
// this.$set(v, "inputStatus", false);
|
|
||||||
v.inputStatus = false
|
|
||||||
}
|
|
||||||
if (name.indexOf("多选") !== -1) {
|
|
||||||
if (
|
|
||||||
v.qc_item_value === "正常" ||
|
|
||||||
v.qc_item_value === "无" ||
|
|
||||||
v.qc_item_value === "无拆修浸液" ||
|
|
||||||
v.qc_item_value === "无异常"
|
|
||||||
) {
|
|
||||||
r.value = [v.qc_item_value];
|
|
||||||
} else {
|
|
||||||
if (
|
|
||||||
r.value.includes("无") ||
|
|
||||||
r.value.includes("正常") ||
|
|
||||||
r.value.includes("无拆修浸液") ||
|
|
||||||
r.value.includes("无异常")
|
|
||||||
) {
|
|
||||||
r.value = [];
|
|
||||||
r.value.push(v.qc_item_value);
|
|
||||||
} else {
|
|
||||||
if (r.value.includes(v.qc_item_value)) {
|
|
||||||
const index = r.value.findIndex((item) =>
|
|
||||||
item.includes(v.qc_item_value)
|
|
||||||
);
|
|
||||||
if (index !== -1) {
|
|
||||||
r.value.splice(index, 1);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
r.value.push(v.qc_item_value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// this.$set(r, "value", v.attr_name);
|
|
||||||
r.value = v.qc_item_value
|
|
||||||
}
|
|
||||||
// let target = e.target;
|
|
||||||
// if (target.nodeName === "SPAN") {
|
|
||||||
// target = e.target.parentNode;
|
|
||||||
// }
|
|
||||||
// target.blur();
|
|
||||||
emit("brandclick", "quality");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 通用行合并函数(将相同多列数据合并为一行)
|
|
||||||
const mergeRowMethod2 = ({ row, _rowIndex, column, visibleData }) => {
|
|
||||||
const fields = ['title']
|
|
||||||
const cellValue = row[column.field]
|
|
||||||
if (cellValue && fields.includes(column.field)) {
|
|
||||||
const prevRow = visibleData[_rowIndex - 1]
|
|
||||||
let nextRow = visibleData[_rowIndex + 1]
|
|
||||||
if (prevRow && prevRow[column.field] === cellValue) {
|
|
||||||
return { rowspan: 0, colspan: 0 }
|
|
||||||
} else {
|
|
||||||
let countRowspan = 1
|
|
||||||
while (nextRow && nextRow[column.field] === cellValue) {
|
|
||||||
nextRow = visibleData[++countRowspan + _rowIndex]
|
|
||||||
}
|
|
||||||
if (countRowspan > 1) {
|
|
||||||
return { rowspan: countRowspan, colspan: 1 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
::v-deep .mytable-scrollbar ::-webkit-scrollbar {
|
|
||||||
//width: 10px;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .el-dialog__body {
|
|
||||||
padding: 0 20px 20px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnclass ::v-deep .classButton:hover {
|
|
||||||
border-radius: 20px;
|
|
||||||
color: #f56c6c;
|
|
||||||
background: #faeaeb;
|
|
||||||
border-color: #edaeae;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnclass ::v-deep .buttonDiv:hover {
|
|
||||||
border-radius: 20px;
|
|
||||||
color: #2794f8;
|
|
||||||
background: #d2e6fc;
|
|
||||||
border-color: #b3d8ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnclass ::v-deep .el-button--primary:hover {
|
|
||||||
border-radius: 20px;
|
|
||||||
color: #2794f8;
|
|
||||||
background: #d2e6fc;
|
|
||||||
border-color: #b3d8ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnclass ::v-deep .el-button--danger:hover {
|
|
||||||
border-radius: 20px;
|
|
||||||
color: #f56c6c;
|
|
||||||
background: #faeaeb;
|
|
||||||
border-color: #edaeae;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnclass ::v-deep .el-button:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btnclass ::v-deep .el-button {
|
|
||||||
font-size: 12px;
|
|
||||||
padding: 8px;
|
|
||||||
min-width: 78px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dianji {
|
|
||||||
background-color: #ecf5ff;
|
|
||||||
color: #409eff;
|
|
||||||
border-color: #409eff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dianji:hover {
|
|
||||||
background-color: #ecf5ff;
|
|
||||||
color: #409eff;
|
|
||||||
border-color: #409eff;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,104 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="container">
|
|
||||||
<div class="topbox">
|
|
||||||
<el-input v-model="trackingValue" class="input" placeholder="扫描快递单号收货" @change="onRevice" />
|
|
||||||
<el-button type="primary" class="searchbtn" @click="startQc">开始质检</el-button>
|
|
||||||
</div>
|
|
||||||
<el-scrollbar wrap-class="scrollbarWrapper" style="flex:1" v-if="Object.keys(detail).length > 0">
|
|
||||||
dfdf
|
|
||||||
</el-scrollbar>
|
|
||||||
<div class="bottombox" v-if="Object.keys(detail).length > 0">
|
|
||||||
<el-input v-model="trackingValue" class="input2" placeholder="输入密封袋编码" @change="onRevice" />
|
|
||||||
<el-button type="primary" class="searchbtn2">质检完成</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { xy_qc_item } from '@/api/qc.js'
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
detail: {},
|
|
||||||
trackingValue: '',
|
|
||||||
reviceList: []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components: {},
|
|
||||||
methods: {
|
|
||||||
handleClick(e) {
|
|
||||||
console.log(e);
|
|
||||||
},
|
|
||||||
onRevice(e) {
|
|
||||||
console.log(e, "eee");
|
|
||||||
|
|
||||||
if (/^[A-Za-z0-9]{4,35}$/.test(e)) {
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
startQc() {
|
|
||||||
xy_qc_item().then(res => {
|
|
||||||
console.log(res);
|
|
||||||
})
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.container {
|
|
||||||
min-height: calc(100vh - 100px);
|
|
||||||
background: #F1F2F5;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.topbox {
|
|
||||||
background: #fff;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input {
|
|
||||||
height: 64px;
|
|
||||||
max-width: 680px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchbtn {
|
|
||||||
height: 64px;
|
|
||||||
width: 150px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scrollbarWrapper {
|
|
||||||
flex: 1;
|
|
||||||
padding: 12px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input2 {
|
|
||||||
height: 40px;
|
|
||||||
width: 227px;
|
|
||||||
margin: 0 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bottombox {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
background: #fff;
|
|
||||||
height: 83px;
|
|
||||||
padding: 18px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchbtn2 {
|
|
||||||
height: 40px;
|
|
||||||
width: 120px;
|
|
||||||
margin: 0 10px;
|
|
||||||
}
|
|
||||||
</style>
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,218 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="salecontainer">
|
|
||||||
<SearchForm :inputs="Inputs" @onSearch="onSearch" @onRest="onRest"/>
|
|
||||||
<div class="reciverecordtabox">
|
|
||||||
<el-table
|
|
||||||
:data="list"
|
|
||||||
row-key="tracking_number"
|
|
||||||
v-loading="loading"
|
|
||||||
border
|
|
||||||
default-expand-all
|
|
||||||
>
|
|
||||||
<el-table-column :prop="item.dataKey" :label="item.label" :sortable="item.sortable" v-for="item,index in columns" :key="String(index)">
|
|
||||||
<template #default="scope">
|
|
||||||
<span v-if="item.render" >
|
|
||||||
<span :style="{color:item.render(scope.row,item.dataKey).type=='error'?'red':'#101010'}">
|
|
||||||
{{item.render(scope.row,item.dataKey).text}}
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
<span v-else-if="item.label == '销售单号'">
|
|
||||||
{{ scope.row.sale_after_info.biz_order_id }}
|
|
||||||
</span>
|
|
||||||
<span v-else class="firstspan">
|
|
||||||
{{scope.row[item.dataKey]}}
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
<div class="paginationbox">
|
|
||||||
<el-pagination
|
|
||||||
v-model:current-page="page"
|
|
||||||
v-model:page-size="pageSize"
|
|
||||||
:page-sizes="[10,50,100, 200, 400, 800]"
|
|
||||||
:disabled="loading"
|
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
|
||||||
:total="total||list.length"
|
|
||||||
@size-change="handleSizeChange"
|
|
||||||
@current-change="handleCurrentChange"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref,unref,computed,reactive,onMounted} from 'vue';
|
|
||||||
import Table from "@components/table.vue";
|
|
||||||
import axioshooks from "@axioshooks";
|
|
||||||
import {ElMessage} from "element-plus";
|
|
||||||
import { useRouter } from 'vue-router';
|
|
||||||
import {Plus} from "@element-plus/icons-vue";
|
|
||||||
import SearchForm from "@components/searchForm/index.vue";
|
|
||||||
|
|
||||||
const imeipopover=ref(false);
|
|
||||||
const imeivalue=ref('');
|
|
||||||
const pageSize=ref(10);
|
|
||||||
const page=ref(1);
|
|
||||||
const total=ref(0);
|
|
||||||
const loading=ref(false);
|
|
||||||
const list=ref([]);
|
|
||||||
const params=ref({});
|
|
||||||
|
|
||||||
const Inputs=ref([
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入快递单号",
|
|
||||||
value:"",
|
|
||||||
popover:true,
|
|
||||||
title:"快递单号",
|
|
||||||
name:"tracking_number"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入销售单号",
|
|
||||||
name:"biz_order_id",
|
|
||||||
value:"",
|
|
||||||
popover:true,
|
|
||||||
title:"销售单号",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type:"el-input",
|
|
||||||
placeholder:"请输入收货人",
|
|
||||||
name:"truename",
|
|
||||||
value:"",
|
|
||||||
title:"收货人",
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
|
|
||||||
const columns=[
|
|
||||||
{
|
|
||||||
dataKey: `tracking_number`,
|
|
||||||
label:"快递单号",
|
|
||||||
width:200,
|
|
||||||
show:true,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `biz_order_id`,
|
|
||||||
label:"销售单号",
|
|
||||||
show:true,
|
|
||||||
width:200,
|
|
||||||
align: "center",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
dataKey: `truename`,
|
|
||||||
label:"收货人",
|
|
||||||
width:200,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `receive_time`,
|
|
||||||
label:"收货时间",
|
|
||||||
width:200,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `remark`,
|
|
||||||
label:"说明",
|
|
||||||
width:200,
|
|
||||||
align: "center",
|
|
||||||
},{
|
|
||||||
dataKey: `receive_result`,
|
|
||||||
label:"结果",
|
|
||||||
width:150,
|
|
||||||
align: "center",
|
|
||||||
show:true,
|
|
||||||
render:(item,key)=>{
|
|
||||||
let data=item[key]?tem[key]:item.children.receive_result;
|
|
||||||
if(data=="1"){
|
|
||||||
return {text:'收货成功' ,type:'success'};
|
|
||||||
}else if(data=="2"){
|
|
||||||
return {text:'无法匹配,请人工处理',type:'error'};
|
|
||||||
}else{
|
|
||||||
return {text:'未收到' ,type:'success'};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
const onSearch=(values)=>{
|
|
||||||
params.value=values;
|
|
||||||
page.value=1;
|
|
||||||
getDatas();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const getDatas=()=>{
|
|
||||||
loading.value=true;
|
|
||||||
list.value=[];
|
|
||||||
axioshooks({
|
|
||||||
data:{list_row:pageSize.value,page:page.value,...params.value},
|
|
||||||
url:"trusteeship/receiving_records",
|
|
||||||
customHandler:(err,e)=>{
|
|
||||||
if(!err&&e){
|
|
||||||
if(e.errcode==0){
|
|
||||||
// list.value=e.datas;
|
|
||||||
list.value=e.datas.datas_list.map((h)=>{
|
|
||||||
h.children=h.sale_after_info;
|
|
||||||
return h;
|
|
||||||
});
|
|
||||||
console.log(list.value,'list')
|
|
||||||
total.value=e.datas.total;
|
|
||||||
loading.value=false;
|
|
||||||
}else{
|
|
||||||
ElMessage(e.msg);
|
|
||||||
loading.value=false;
|
|
||||||
}
|
|
||||||
}else if(err){
|
|
||||||
ElMessage(err);
|
|
||||||
loading.value=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
onMounted(()=>{
|
|
||||||
page.value=1;
|
|
||||||
getDatas();
|
|
||||||
});
|
|
||||||
|
|
||||||
const onRest=()=>{
|
|
||||||
params.value={};
|
|
||||||
page.value=1;
|
|
||||||
getDatas();
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleSizeChange=(v)=>{
|
|
||||||
console.log(pageSize,v,"ss");
|
|
||||||
pageSize.value=v;
|
|
||||||
page.value=1;
|
|
||||||
getDatas();
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleCurrentChange=(v)=>{
|
|
||||||
console.log(page,v,"handleCurrentChange");
|
|
||||||
page.value=v;
|
|
||||||
getDatas();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.salecontainer{
|
|
||||||
background:#F1F2F5;
|
|
||||||
flex:1;
|
|
||||||
display:flex;
|
|
||||||
flex-direction:column;
|
|
||||||
}
|
|
||||||
.reciverecordtabox{
|
|
||||||
margin:20px;
|
|
||||||
}
|
|
||||||
.paginationbox{
|
|
||||||
padding:20px;
|
|
||||||
background: #fff;
|
|
||||||
display:flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -1,429 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="container">
|
|
||||||
<div>
|
|
||||||
<erp-options ref="OptionsRef" :data="input" :model="formLabelAlign" @change="change" @imeichange="imeichange"
|
|
||||||
@cleartext="cleartext" @resetfrom="resetfrom" @search="inquire" @machineclear="machineclear"
|
|
||||||
:morepopoverFlag="morepopoverFlag">
|
|
||||||
</erp-options>
|
|
||||||
</div>
|
|
||||||
<div class="AG-table-center tablebox" >
|
|
||||||
<erp-configuration
|
|
||||||
:buttonlist="buttonlist"
|
|
||||||
:exploading="exploading"
|
|
||||||
:columnconfigvisible="columnconfigvisible"
|
|
||||||
:columnOptions="columnOptions"
|
|
||||||
:tableLabel="tableLabel"
|
|
||||||
@exceldown="exceldown"
|
|
||||||
@columnConfigClose="columnConfigClose"
|
|
||||||
@columnCfgRest="columnCfgRest"
|
|
||||||
@columnConfigSubmit="columnConfigSubmit"
|
|
||||||
@columnCfgCheck="columnCfgCheck"
|
|
||||||
@columnCfgAllchange="columnCfgAllchange"
|
|
||||||
@columnconfigClick="columnconfigClick"
|
|
||||||
></erp-configuration>
|
|
||||||
<erp-xy-table :tableDate="reviceList" :tabbar="true" :tablelabel="tableLabel" ref="xTables" >
|
|
||||||
</erp-xy-table>
|
|
||||||
<div style="background:#fff;padding-top:10px;height:48px;">
|
|
||||||
<erp-table-pagination :page="page" @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange"
|
|
||||||
style="padding:0;" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import moment from "moment/moment";
|
|
||||||
|
|
||||||
function getToday(type = 'YYYY-MM-DD HH:mm:ss') {
|
|
||||||
const obj = {
|
|
||||||
starttime: "",
|
|
||||||
endtime: "",
|
|
||||||
};
|
|
||||||
obj.starttime = moment(moment().startOf("day").valueOf()).format(
|
|
||||||
type
|
|
||||||
);
|
|
||||||
obj.endtime = moment(moment().valueOf()).format(type);
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
tableData:[
|
|
||||||
{label:"全部",value:"all"},
|
|
||||||
{label:"等待寄出",value:"wait"},
|
|
||||||
{label:"待发货",value:"waitsend"},
|
|
||||||
{label:"等待质检",value:"waitcheck"},
|
|
||||||
{label:"质检完成",value:"checkfinish"},
|
|
||||||
{label:"等待寄回",value:"waitback"},
|
|
||||||
{label:"已寄回待收货",value:"waitrevice"}
|
|
||||||
],
|
|
||||||
activeTab:'all',
|
|
||||||
morepopoverFlag: false,
|
|
||||||
page: {
|
|
||||||
total: 0, // 分页总条数
|
|
||||||
list_row: 100, // 每页显示条数
|
|
||||||
page: 1, // 当前页
|
|
||||||
pagesizes: [100, 200, 500, 1000, 2000, 5000, 10000],
|
|
||||||
},
|
|
||||||
loading:false,
|
|
||||||
formLabelAlign: {
|
|
||||||
imei: "",
|
|
||||||
time: [],
|
|
||||||
enName:"df",
|
|
||||||
},
|
|
||||||
buttonlist: [
|
|
||||||
|
|
||||||
],
|
|
||||||
input:[
|
|
||||||
{
|
|
||||||
lable: "imei/机器编号",
|
|
||||||
type: "el-input",
|
|
||||||
enName: "imei",
|
|
||||||
clearable: true,
|
|
||||||
placeholder: "请输入imei",
|
|
||||||
filterable: true,
|
|
||||||
ispopover: true,
|
|
||||||
display: false,
|
|
||||||
size: "small",
|
|
||||||
focus: () => { },
|
|
||||||
blur: () => { },
|
|
||||||
handleChange: () => { },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
lable: "查询质检码",
|
|
||||||
type: "el-input",
|
|
||||||
enName: "check_code",
|
|
||||||
clearable: true,
|
|
||||||
placeholder: "请输入质检码",
|
|
||||||
filterable: true,
|
|
||||||
ispopover: true,
|
|
||||||
display: false,
|
|
||||||
size: "small",
|
|
||||||
focus: () => { },
|
|
||||||
blur: () => { },
|
|
||||||
handleChange: () => { },
|
|
||||||
},
|
|
||||||
],
|
|
||||||
tableLabel: [
|
|
||||||
{
|
|
||||||
label: "机器信息",
|
|
||||||
param: "model_info",
|
|
||||||
show: true,
|
|
||||||
link: true,
|
|
||||||
minwidth: "280",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "商品标题",
|
|
||||||
param: "goods_title",
|
|
||||||
align: "center",
|
|
||||||
minwidth: "90",
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "物流单号",
|
|
||||||
param: "repair_cost",
|
|
||||||
align: "center",
|
|
||||||
minwidth: "90",
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "质检完成时间",
|
|
||||||
param: "sale_cost",
|
|
||||||
align: "center",
|
|
||||||
minwidth: "90",
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "实物与订单是否一致",
|
|
||||||
param: "adjustment_cost",
|
|
||||||
align: "center",
|
|
||||||
minwidth: "150",
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "质检报告",
|
|
||||||
param: "cost_type",
|
|
||||||
align: "center",
|
|
||||||
minwidth: "90",
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "密封袋编码",
|
|
||||||
param: "receipt_time",
|
|
||||||
align: "center",
|
|
||||||
show: true,
|
|
||||||
minwidth: "80",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "操作",
|
|
||||||
param: "orderManagement",
|
|
||||||
align: "center",
|
|
||||||
show: true,
|
|
||||||
minwidth: "135",
|
|
||||||
fixed: "right",
|
|
||||||
status: ["Logs"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
reviceList:[
|
|
||||||
|
|
||||||
],
|
|
||||||
exploading:false,
|
|
||||||
columnconfigvisible: false, //列配置
|
|
||||||
columnOptions: [
|
|
||||||
{ label: "机器信息", id: 1, disabled: true },
|
|
||||||
// { label: "商品标题", id: 2, disabled: false },
|
|
||||||
{ label: "质检员", id: 3, disabled: false },
|
|
||||||
{ label: "机器状态", id: 4, disabled: false },
|
|
||||||
{ label: "商品状态", id: 5, disabled: false },
|
|
||||||
// { label: "定价", id: 6, disabled: false },
|
|
||||||
// { label: "闲鱼账号", id: 7, disabled: false },
|
|
||||||
{ label: "发布人", id: 8, disabled: false },
|
|
||||||
{ label: "机器成本", id: 9, disabled: false },
|
|
||||||
{ label: "保底价", id: 10, disabled: false },
|
|
||||||
// { label: "预计结算价", id: 11, disabled: false },
|
|
||||||
// { label: "预估利润", id: 12, disabled: false },
|
|
||||||
// { label: "质检报告", id: 13, disabled: false },
|
|
||||||
// { label: "深库存", id: 14, disabled: false },
|
|
||||||
{ label: "首次发布时间", id: 15, disabled: false },
|
|
||||||
// { label: "预估服务费", id: 16, disabled: false },
|
|
||||||
{ label: "在库周期", id: 17, disabled: false },
|
|
||||||
// { label: "在架周期", id: 18, disabled: false },
|
|
||||||
{ label: "操作", id: 19, disabled: true },
|
|
||||||
], //列配置所有列
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components:{},
|
|
||||||
created:{
|
|
||||||
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
height() {
|
|
||||||
return document.documentElement.clientHeight - 230
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
gettbdata(){
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.xTables.scrollTo(0, 0);
|
|
||||||
})
|
|
||||||
this.loading = true;
|
|
||||||
const obj = {
|
|
||||||
...this.formLabelAlign,
|
|
||||||
};
|
|
||||||
|
|
||||||
},
|
|
||||||
onTabClick(e){
|
|
||||||
console.log(e);
|
|
||||||
this.activeTab=e.name;
|
|
||||||
},
|
|
||||||
change(e){
|
|
||||||
console.log(e,"eee");
|
|
||||||
},
|
|
||||||
imeichange(type, text) {
|
|
||||||
if (type === "imei") {
|
|
||||||
this.formLabelAlign.imei = text;
|
|
||||||
this.$set(this.formLabelAlign, "business_id", "");
|
|
||||||
} else {
|
|
||||||
this.formLabelAlign.imei = "";
|
|
||||||
this.$set(this.formLabelAlign, "business_id", text);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
inquire() {
|
|
||||||
this.page.page = 1;
|
|
||||||
this.gettbdata();
|
|
||||||
},
|
|
||||||
cleartext() {
|
|
||||||
this.formLabelAlign.imei = "";
|
|
||||||
this.formLabelAlign.business_id = "";
|
|
||||||
},
|
|
||||||
// 重置表单
|
|
||||||
resetfrom() {
|
|
||||||
this.formLabelAlign = {
|
|
||||||
|
|
||||||
};
|
|
||||||
if(getToday()){
|
|
||||||
this.formLabelAlign.start_time = dateToTimestamp(getToday().starttime); //开始时间
|
|
||||||
this.formLabelAlign.end_time = dateToTimestamp(getToday().endtime) //结束时间
|
|
||||||
this.$refs["OptionsRef"].datevalue = [this.formLabelAlign.start_time, this.formLabelAlign.end_time];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getdate(e, date) {
|
|
||||||
if (e == "time") {
|
|
||||||
this.formLabelAlign.start_time = e === "time" && date ? date[0] : "";
|
|
||||||
this.formLabelAlign.end_time = e === "time" && date ? date[1] : "";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
machineclear() {
|
|
||||||
this.formLabelAlign = {
|
|
||||||
...this.formLabelAlign,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
// 表格导出
|
|
||||||
|
|
||||||
// 分页条数
|
|
||||||
handleSizeChange(data) {
|
|
||||||
Object.assign(this.formLabelAlign, data)
|
|
||||||
this.gettbdata()
|
|
||||||
},
|
|
||||||
// 分页页码
|
|
||||||
handleCurrentChange(data) {
|
|
||||||
if(page.value!=data){
|
|
||||||
Object.assign(this.formLabelAlign, data)
|
|
||||||
this.gettbdata()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
exceldown() {
|
|
||||||
this.exploading = true;
|
|
||||||
product_list({ ...this.formLabelAlign, is_excel: 1 }).then((res) => {
|
|
||||||
this.exploading = false;
|
|
||||||
// console.log(res);
|
|
||||||
// 创建隐藏的可下载链接
|
|
||||||
var eleLink = document.createElement("a");
|
|
||||||
eleLink.download = "订单数据.html";
|
|
||||||
eleLink.style.display = "none";
|
|
||||||
eleLink.target = "_blank";
|
|
||||||
eleLink.href = res.datas.datas;
|
|
||||||
// 触发点击
|
|
||||||
document.body.appendChild(eleLink);
|
|
||||||
eleLink.click();
|
|
||||||
// 然后移除
|
|
||||||
document.body.removeChild(eleLink);
|
|
||||||
console.log(res);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
//列配置关闭
|
|
||||||
columnConfigClose(e) {
|
|
||||||
this.columnconfigvisible = false;
|
|
||||||
},
|
|
||||||
//列配置
|
|
||||||
columnconfigClick() {
|
|
||||||
this.columnconfigvisible = true;
|
|
||||||
},
|
|
||||||
//多选表格
|
|
||||||
selectAllEvent(val) {
|
|
||||||
this.selectdateList = val;
|
|
||||||
},
|
|
||||||
// 单选表格
|
|
||||||
selectEvent(val) {
|
|
||||||
this.selectdateList = val;
|
|
||||||
},
|
|
||||||
|
|
||||||
//下架
|
|
||||||
OffShelf(data) {
|
|
||||||
const xy_product_id = [data.id];
|
|
||||||
this.$confirm("确定下架选中机器吗?", "提示", {
|
|
||||||
confirmButtonText: "确定",
|
|
||||||
cancelButtonText: "取消",
|
|
||||||
type: "warning",
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
this.$message({
|
|
||||||
type: "info",
|
|
||||||
message: "已取消下架",
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
//重新发布
|
|
||||||
Republish(data) {
|
|
||||||
this.$router.push({
|
|
||||||
name: "idleFishIssue",
|
|
||||||
query: { xy_product_id: data.id },
|
|
||||||
});
|
|
||||||
},
|
|
||||||
//列配置单选
|
|
||||||
columnCfgCheck(e) {
|
|
||||||
this.checkedColumns = e;
|
|
||||||
},
|
|
||||||
//列配置全选
|
|
||||||
columnCfgAllchange(e) {
|
|
||||||
this.checkedColumns = e;
|
|
||||||
},
|
|
||||||
|
|
||||||
//列配置重置
|
|
||||||
columnCfgRest() {
|
|
||||||
//恢复到默认
|
|
||||||
this.checkedColumns = [
|
|
||||||
{ label: "机器信息", id: 1, disabled: true },
|
|
||||||
// { label: "商品标题", id: 2, disabled: false },
|
|
||||||
{ label: "质检员", id: 3, disabled: false },
|
|
||||||
{ label: "机器状态", id: 4, disabled: false },
|
|
||||||
{ label: "商品状态", id: 5, disabled: false },
|
|
||||||
// { label: "定价", id: 6, disabled: false },
|
|
||||||
// { label: "闲鱼账号", id: 7, disabled: false },
|
|
||||||
{ label: "发布人", id: 8, disabled: false },
|
|
||||||
{ label: "机器成本", id: 9, disabled: false },
|
|
||||||
{ label: "保底价", id: 10, disabled: false },
|
|
||||||
// { label: "预计结算价", id: 11, disabled: false },
|
|
||||||
// { label: "预估利润", id: 12, disabled: false },
|
|
||||||
// { label: "质检报告", id: 13, disabled: false },
|
|
||||||
// { label: "深库存", id: 14, disabled: false },
|
|
||||||
{ label: "首次发布时间", id: 15, disabled: false },
|
|
||||||
// { label: "预估服务费", id: 16, disabled: false },
|
|
||||||
{ label: "在库周期", id: 17, disabled: false },
|
|
||||||
// { label: "在架周期", id: 18, disabled: false },
|
|
||||||
{ label: "操作", id: 19, disabled: true },
|
|
||||||
];
|
|
||||||
},
|
|
||||||
//列配置更新
|
|
||||||
columnConfigSubmit(e) {
|
|
||||||
this.loading = true;
|
|
||||||
this.dialogVisible = false;
|
|
||||||
//更新表格展示列
|
|
||||||
this.tableLabel.forEach((item) => {
|
|
||||||
item.show = false;
|
|
||||||
});
|
|
||||||
this.checkedColumns.forEach((item) => {
|
|
||||||
for (let i = 0; i < this.tableLabel.length; i++) {
|
|
||||||
if (
|
|
||||||
this.tableLabel[i].label == item.label &&
|
|
||||||
item.label != "机器编号" &&
|
|
||||||
item.label != "质检码"
|
|
||||||
) {
|
|
||||||
this.tableLabel[i].show = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.tableLabel1 = e;
|
|
||||||
// this.tableLabel = e;
|
|
||||||
this.dynamickey = new Date().getTime();
|
|
||||||
this.loading = false;
|
|
||||||
this.columnconfigvisible = false;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.container{
|
|
||||||
background:#F1F2F5;
|
|
||||||
|
|
||||||
}
|
|
||||||
.tabsbox{
|
|
||||||
background: #fff;
|
|
||||||
padding:20px;
|
|
||||||
}
|
|
||||||
.topdesc{
|
|
||||||
color:#606060;
|
|
||||||
font-size:16px;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
.receivingWorkbenchbox {
|
|
||||||
padding: 10px;
|
|
||||||
flex:1;
|
|
||||||
}
|
|
||||||
.topinput{
|
|
||||||
margin-top:12px;
|
|
||||||
}
|
|
||||||
.input{
|
|
||||||
height:155px;
|
|
||||||
}
|
|
||||||
.mainbox{
|
|
||||||
margin-top:40px;
|
|
||||||
}
|
|
||||||
</style>
|
|
Loading…
Reference in New Issue