提交 ec2bdbd3 编写于 作者: 张磊's avatar 张磊

Merge branch 'feature/zl' into 'test'

Feature/zl

See merge request com.pica.cloud.education.frontend/pica.cloud.web-education-admin!485
#!/bin/bash
hasGit=`which git` # 判断是否存在git
msg=${1:-'auto commit'} # 获取终端输入的第一个参数,若为空则为auto commit
if [ ! $hasGit ];then
echo 'Please download git first!';
exit 1;
else
result=`git symbolic-ref --short -q HEAD` # 获取分支名
curBranch=${result} # 去除多余的*
echo `你的当前分支是:$curBranch`
git add .
git commit -m "$msg"
git push origin $curBranch # 提交代码到github(修改了远程项目名)
fi
此差异已折叠。
...@@ -13,7 +13,8 @@ ...@@ -13,7 +13,8 @@
"build:test": "cross-env BUILD_ENV=test node build/build.js", "build:test": "cross-env BUILD_ENV=test node build/build.js",
"build:test2": "cross-env BUILD_ENV=test2 node build/build.js", "build:test2": "cross-env BUILD_ENV=test2 node build/build.js",
"build:uat": "cross-env BUILD_ENV=uat node build/build.js", "build:uat": "cross-env BUILD_ENV=uat node build/build.js",
"build:pro": "cross-env BUILD_ENV=pro node build/build.js" "build:pro": "cross-env BUILD_ENV=pro node build/build.js",
"push": "bash gitPush.sh"
}, },
"dependencies": { "dependencies": {
"@babel/polyfill": "^7.2.5", "@babel/polyfill": "^7.2.5",
...@@ -42,7 +43,7 @@ ...@@ -42,7 +43,7 @@
"vue-router": "^2.1.1", "vue-router": "^2.1.1",
"vue-ueditor-wrap": "^2.4.1", "vue-ueditor-wrap": "^2.4.1",
"vue-video-player": "^5.0.2", "vue-video-player": "^5.0.2",
"vuedraggable": "^2.23.2", "vuedraggable": "^2.24.3",
"vuex": "^2.0.0" "vuex": "^2.0.0"
}, },
"devDependencies": { "devDependencies": {
...@@ -59,7 +60,7 @@ ...@@ -59,7 +60,7 @@
"connect-history-api-fallback": "^1.1.0", "connect-history-api-fallback": "^1.1.0",
"cropperjs": "^1.5.7", "cropperjs": "^1.5.7",
"cross-env": "^5.0.0", "cross-env": "^5.0.0",
"css-loader": "^0.25.0", "css-loader": "^0.28.11",
"eventsource-polyfill": "^0.9.6", "eventsource-polyfill": "^0.9.6",
"express": "^4.13.3", "express": "^4.13.3",
"extract-text-webpack-plugin": "^1.0.1", "extract-text-webpack-plugin": "^1.0.1",
...@@ -84,7 +85,7 @@ ...@@ -84,7 +85,7 @@
"url-loader": "^0.5.7", "url-loader": "^0.5.7",
"vue-lazyload": "^1.2.6", "vue-lazyload": "^1.2.6",
"vue-loader": "^10.0.0", "vue-loader": "^10.0.0",
"vue-style-loader": "^1.0.0", "vue-style-loader": "^2.0.5",
"vue-template-compiler": "^2.1.0", "vue-template-compiler": "^2.1.0",
"webpack": "^1.13.2", "webpack": "^1.13.2",
"webpack-dev-middleware": "^1.8.3", "webpack-dev-middleware": "^1.8.3",
......
...@@ -157,6 +157,7 @@ ...@@ -157,6 +157,7 @@
style="width: 450px;" style="width: 450px;"
@change="updateCertificate(index)" @change="updateCertificate(index)"
:disabled="disabled" :disabled="disabled"
filterable
> >
<el-option <el-option
v-for="item in optionsCertificate" v-for="item in optionsCertificate"
...@@ -182,6 +183,7 @@ ...@@ -182,6 +183,7 @@
placeholder="请选择证书" placeholder="请选择证书"
style="width: 350px" style="width: 350px"
:disabled="disabled" :disabled="disabled"
filterable
> >
<el-option <el-option
v-for="item in optionsCertificate" v-for="item in optionsCertificate"
......
...@@ -75,7 +75,7 @@ router.beforeEach((to, from, next) => { ...@@ -75,7 +75,7 @@ router.beforeEach((to, from, next) => {
} }
next(); next();
}else{ }else{
next(false) next({ path: "/home" });
return return
} }
}) })
......
此差异已折叠。
...@@ -218,9 +218,19 @@ html,body{ ...@@ -218,9 +218,19 @@ html,body{
border: 1px solid #449284 !important; border: 1px solid #449284 !important;
opacity: 0.5; opacity: 0.5;
} }
// .el-button--default:focus, .el-button--default:hover {
// color: #449284 !important;
// border-color: #449284 !important;
// background-color: #fff !important;
// }
.el-pagination.is-background .el-pager li:not(.disabled).active { .el-pagination.is-background .el-pager li:not(.disabled).active {
background: #449284 !important; background: #449284 !important;
} }
// 表格选中
.el-table__body tr.current-row>td.el-table__cell {
background-color: rgb(236, 244, 243) !important;
}
// 主题样式修改 // 主题样式修改
.el-radio__input.is-checked .el-radio__inner { .el-radio__input.is-checked .el-radio__inner {
......
...@@ -220,4 +220,8 @@ export function getExeclUrl(url) { ...@@ -220,4 +220,8 @@ export function getExeclUrl(url) {
// 获取教培项目文件地址 // 获取教培项目文件地址
export function getItemFileUrl(url) { export function getItemFileUrl(url) {
return getConfigByEnvType('itemFileUrl') + url return getConfigByEnvType('itemFileUrl') + url
} }
\ No newline at end of file // // 获取教培弹框url
// export function getEdUrl() {
// return getConfigByEnvType('tEdUrl')
// }
\ No newline at end of file
...@@ -41,3 +41,11 @@ export const getTowns = (params) => { ...@@ -41,3 +41,11 @@ export const getTowns = (params) => {
params: params, params: params,
}); });
}; };
// /*获取机构地址*/
export const getDetectTowns = (params) => {
return fetch({
url: getBaseUrl(`store/detect/address/province/city/${params.storeId || 0}/${params.addressId || 0}`),
method: "get",
});
};
...@@ -42,6 +42,7 @@ export const envConfig = { ...@@ -42,6 +42,7 @@ export const envConfig = {
stsUrl: "https://dev-api.yunqueyi.com/middle/oss/token/", //sts服务器 stsUrl: "https://dev-api.yunqueyi.com/middle/oss/token/", //sts服务器
bucketName: "pica-test-huabei2", bucketName: "pica-test-huabei2",
endpoint: "oss-cn-beijing.aliyuncs.com", endpoint: "oss-cn-beijing.aliyuncs.com",
tEdUrl:"https://dev-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
}, },
dev: { dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/', baseUrl: 'https://dev-sc.yunqueyi.com/',
...@@ -64,6 +65,7 @@ export const envConfig = { ...@@ -64,6 +65,7 @@ export const envConfig = {
stsUrl: "https://dev-api.yunqueyi.com/middle/oss/token/", //sts服务器 stsUrl: "https://dev-api.yunqueyi.com/middle/oss/token/", //sts服务器
bucketName: "pica-test-huabei2", bucketName: "pica-test-huabei2",
endpoint: "oss-cn-beijing.aliyuncs.com", endpoint: "oss-cn-beijing.aliyuncs.com",
tEdUrl:"https://dev-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
}, },
test: { test: {
baseUrl: 'https://test1-sc.yunqueyi.com/', baseUrl: 'https://test1-sc.yunqueyi.com/',
...@@ -86,6 +88,7 @@ export const envConfig = { ...@@ -86,6 +88,7 @@ export const envConfig = {
stsUrl: "https://test1-api.yunqueyi.com/middle/oss/token/", //sts服务器 stsUrl: "https://test1-api.yunqueyi.com/middle/oss/token/", //sts服务器
bucketName: "pica-test-huabei2", bucketName: "pica-test-huabei2",
endpoint: "oss-cn-beijing.aliyuncs.com", endpoint: "oss-cn-beijing.aliyuncs.com",
tEdUrl:"https://test1-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
}, },
test2: { test2: {
baseUrl: 'https://test2-work.yunqueyi.com/sc/', baseUrl: 'https://test2-work.yunqueyi.com/sc/',
...@@ -107,6 +110,7 @@ export const envConfig = { ...@@ -107,6 +110,7 @@ export const envConfig = {
stsUrl: "https://test2-api.yunqueyi.com/middle/oss/token/", //sts服务器 stsUrl: "https://test2-api.yunqueyi.com/middle/oss/token/", //sts服务器
bucketName: "pica-test-huabei2", bucketName: "pica-test-huabei2",
endpoint: "oss-cn-beijing.aliyuncs.com", endpoint: "oss-cn-beijing.aliyuncs.com",
tEdUrl:"https://test1-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
}, },
uat: { uat: {
baseUrl: 'https://uat-sc.yunqueyi.com/', baseUrl: 'https://uat-sc.yunqueyi.com/',
...@@ -129,6 +133,7 @@ export const envConfig = { ...@@ -129,6 +133,7 @@ export const envConfig = {
stsUrl: "https://uat-api.yunqueyi.com/middle/oss/token/", //sts服务器 stsUrl: "https://uat-api.yunqueyi.com/middle/oss/token/", //sts服务器
bucketName: "pica-pro", bucketName: "pica-pro",
endpoint: "oss-cn-shanghai.aliyuncs.com", endpoint: "oss-cn-shanghai.aliyuncs.com",
tEdUrl:"https://uat-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
}, },
pro: { pro: {
baseUrl: 'https://sc.yunqueyi.com/', baseUrl: 'https://sc.yunqueyi.com/',
...@@ -150,6 +155,7 @@ export const envConfig = { ...@@ -150,6 +155,7 @@ export const envConfig = {
ossImgUrl: 'https://file.yunqueyi.com', ossImgUrl: 'https://file.yunqueyi.com',
stsUrl: "https://api.yunqueyi.com/middle/oss/token/", //sts服务器 stsUrl: "https://api.yunqueyi.com/middle/oss/token/", //sts服务器
bucketName: "pica-pro", bucketName: "pica-pro",
endpoint: "oss-cn-shanghai.aliyuncs.com" endpoint: "oss-cn-shanghai.aliyuncs.com",
tEdUrl:"https://phome.yunqueyi.com/coopv2/#/previewActivityDialog"
} }
} }
...@@ -142,5 +142,82 @@ export const getBusinessCategory = () => { ...@@ -142,5 +142,82 @@ export const getBusinessCategory = () => {
}); });
}; };
export const getContractList = (projectId) => {
return fetch({
headers,
url: getBaseUrl(`store/contract/options/queryByProjectId/${projectId}`),
method: "get",
description: "查询合同",
});
};
export const getCooperationProjectList = () => {
return fetch({
headers,
url: getBaseUrl(
`store/cooperation/project/options/query`
),
method: "get",
description: "查询合作项目",
});
};
export const getGoodsCascadeList = (parentId, level) => {
return fetch({
headers,
url: getBaseUrl(
`store/commodity/categorys/cascade/list?pageNo=1&pageSize=999&parentId=${parentId}&categoryLevel=${level}`
),
method: "get",
description: " 获取商品(药品)分类",
});
};
// `store/medications/query/medicationGoodsListByPage`
export const getMedList = (data) => {
return fetch({
headers,
url: getBaseUrl(`store/medications/query/appliedMedicationGoodsListByPage`),
method: "post",
data,
description: "查询药品列表",
});
};
export const getCategorysList = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/medical/categorys/list`),
method: "get",
params,
description: "查询药品类别",
});
};
export const saveMedList = (data) => {
return fetch({
headers,
url: getBaseUrl(`store/admin/medical/saveAndReturn`),
method: "post",
data,
description: "药品保存",
});
};
// 获取商品分类 / store / commodity / categorys / cascade / listAll;
export const getGoodsListAll = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/commodity/categorys/cascade/listAll`),
method: "get",
params,
description: "查询商品类别",
});
};
// 条形码获取信息
export const getBarcodeData =(barCode) => {
return fetch({
headers,
url: getBaseUrl(`store/admin/medical/queryByBarcode/${barCode}`),
method: "get",
description: "条形码获取信息",
});
}
\ No newline at end of file
...@@ -250,7 +250,10 @@ export function getItemFileUrl(url) { ...@@ -250,7 +250,10 @@ export function getItemFileUrl(url) {
export function getCmsUrl(url) { export function getCmsUrl(url) {
return getConfigByEnvType('cmsUrl') + url return getConfigByEnvType('cmsUrl') + url
} }
// 获取教培弹框url
export function getEdUrl() {
return getConfigByEnvType('tEdUrl')
}
// 转换时间格式 // 转换时间格式
......
...@@ -684,6 +684,7 @@ ...@@ -684,6 +684,7 @@
v-model="item.certificateId" v-model="item.certificateId"
placeholder="请选择证书" placeholder="请选择证书"
style="" style=""
filterable
@change="updateCertificate(index)" @change="updateCertificate(index)"
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
...@@ -719,6 +720,7 @@ ...@@ -719,6 +720,7 @@
v-model="formComponent.certificate" v-model="formComponent.certificate"
placeholder="请选择证书" placeholder="请选择证书"
style="width: 350px" style="width: 350px"
filterable
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
<el-option <el-option
......
...@@ -1173,6 +1173,7 @@ ...@@ -1173,6 +1173,7 @@
placeholder="请选择证书" placeholder="请选择证书"
size="mini" size="mini"
style="width: 450px;" style="width: 450px;"
filterable
@change="updateCertificate(index)" @change="updateCertificate(index)"
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
...@@ -1234,6 +1235,7 @@ ...@@ -1234,6 +1235,7 @@
:class="customError.certificate.className" :class="customError.certificate.className"
> >
<el-select <el-select
filterable
v-model="formComponent.certificate" v-model="formComponent.certificate"
placeholder="请选择证书" placeholder="请选择证书"
style="width: 350px" style="width: 350px"
......
...@@ -956,6 +956,7 @@ ...@@ -956,6 +956,7 @@
placeholder="请选择证书" placeholder="请选择证书"
size="mini" size="mini"
style="width: 450px;" style="width: 450px;"
filterable
@change="updateCertificate(index)" @change="updateCertificate(index)"
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
...@@ -998,6 +999,7 @@ ...@@ -998,6 +999,7 @@
v-model="formComponent.certificate" v-model="formComponent.certificate"
placeholder="请选择证书" placeholder="请选择证书"
style="width: 350px" style="width: 350px"
filterable
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
<el-option <el-option
...@@ -1741,13 +1743,19 @@ export default { ...@@ -1741,13 +1743,19 @@ export default {
if (option == "edit" || option == "storageEdit") { if (option == "edit" || option == "storageEdit") {
notifyData.notifyId = this.formData.notifyId; notifyData.notifyId = this.formData.notifyId;
} }
// 中医项目
const projectType = vm.getUrlSearch(window.location.href, "projectType");
console.log('--projectType', projectType);
if(projectType == 5){
projectModel.projectType = 5;
}
let postData = { let postData = {
projectModel: JSON.stringify(projectModel), projectModel: JSON.stringify(projectModel),
attachmentModel: JSON.stringify(attachmentModel), attachmentModel: JSON.stringify(attachmentModel),
attachmentPDFModel: JSON.stringify(attachmentPDFModel), attachmentPDFModel: JSON.stringify(attachmentPDFModel),
notifyData: JSON.stringify(notifyData) notifyData: JSON.stringify(notifyData)
}; };
//console.log(postData); console.log('JSON.stringify(projectModel)', projectModel, attachmentModel, attachmentPDFModel, notifyData);
openLoading(vm); openLoading(vm);
vm.POST("portal/portalInfo/insertOrUpdate", postData).then(res => { vm.POST("portal/portalInfo/insertOrUpdate", postData).then(res => {
closeLoading(vm); closeLoading(vm);
......
...@@ -1181,6 +1181,7 @@ ...@@ -1181,6 +1181,7 @@
placeholder="请选择证书" placeholder="请选择证书"
size="mini" size="mini"
style="width: 450px;" style="width: 450px;"
filterable
@change="updateCertificate(index)" @change="updateCertificate(index)"
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
...@@ -1244,6 +1245,7 @@ ...@@ -1244,6 +1245,7 @@
<el-select <el-select
v-model="formComponent.certificate" v-model="formComponent.certificate"
placeholder="请选择证书" placeholder="请选择证书"
filterable
style="width: 350px" style="width: 350px"
:disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
> >
......
此差异已折叠。
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
<el-dialog <el-dialog
title="请选择项目类型" title="请选择项目类型"
:visible.sync="centerDialogVisible" :visible.sync="centerDialogVisible"
width="600px" width="750px"
:close-on-click-modal="false" :close-on-click-modal="false"
@close="handleTypeClose" @close="handleTypeClose"
center center
...@@ -675,14 +675,16 @@ export default { ...@@ -675,14 +675,16 @@ export default {
}, },
//改变状态 //改变状态
changeStatus(row, type) { changeStatus(row, type) {
console.log('--row', row);
let projectId = row.id; let projectId = row.id;
let level = row.level; let level = row.level;
if (type === 0) { if (type === 0) {
this.updateItemManager(this.formInline); this.updateItemManager(this.formInline);
//编辑 //编辑
if (row.projectType === 1) { if (row.projectType === 1 || row.projectType === 5 ) {
this.$router.push( this.$router.push(
"edit-manager?projectType=1&projectId=" + "edit-manager?projectType=" + row.projectType +"&projectId=" +
projectId + projectId +
"&level=" + "&level=" +
level + level +
......
此差异已折叠。
...@@ -606,7 +606,7 @@ export default { ...@@ -606,7 +606,7 @@ export default {
} }
} }
// url = `/create-good?id=${row.goodsId}&storeId=${this.searchForm.storeId}&goodsType=${goodsType}&commissionFlag=${this.commissionFlag}` // url = `/create-good?id=${row.goodsId}&storeId=${this.searchForm.storeId}&goodsType=${goodsType}&commissionFlag=${this.commissionFlag}`
let url = `/create-good?id=${item}&storeId=${this.storeId}&goodsType=${goodsType}&commissionFlag=2`; let url = `/create-good-new?id=${item}&storeId=${this.storeId}&goodsType=${goodsType}&commissionFlag=2`;
// this.$store.dispatch('goodsManage/changeGoodsInfo', {...row}); // this.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
this.$router.push({ this.$router.push({
path: url, path: url,
......
const form1 = {
approvalNumber: "", // 批准文号
medicCommonName: "", // 产品通用名称
barCode: "", // 条形码
medicGoodsName: "", // 商品名称
specifications: "", // 规格
productionCompany: "", // 生产企业
medicalCategoryId: "", // 药品分类
};
const form = {
id: 0,
goodsName: "",
goodsDescription: "",
goodsHeaderImages: [],
goodsType: "",
// barCode: "",
costPrice: 0,
decrStock: 0, //减少库存
incrStock: "", //增加库存
storeId: "",
optPrice: "",
scorePerformance: 0,
goodsStock: 0,
stock: 0,
externalGoodsCode: "",
leastCount: 1,
mostCount: -1,
incrType: 1,
saleType: 1,
minWhole: 1,
expressLimitFlag: 0, //是否支持退货退款
};
const form3 = {
goodsCategoryIdList: [], // 商品分类
cooperationProjectId: "", // 合作项目id
contractId: "", // 合同id
goodsName: "", // 商品名称
choiceGoods: false,
goodsDescription: "", // 商品介绍
goodsHeaderImages: [],
goodsVideoList: [],
goodsDetailImages: [],
medicationId: "",
};
export const originForm1 = form1;
export const originForm3 = form3;
export const originForm = form;
const checkBarcode = (rule, value, cb) => {
const valedBarcode = new RegExp("[\\u4E00-\\u9FFF]+", "g");
if (value && valedBarcode.test(value)) cb(new Error("条形码不能输入中文"));
cb();
};
const checkNumber = (rule, value, cb) => {
const val = String(value);
const isInt = /^([1-9][0-9]*)$/;
if (val && !isInt.test(val)) cb(new Error("请输入正整数"));
cb();
};
const checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
const rules1 = {
barCode: [
{ required: true, message: "请输入条形码", trigger: "blur" },
{ validator: checkBarcode, trigger: "blur" },
],
medicCommonName: [
{ required: true, message: "请输入产品名称/通用名称", trigger: "blur" },
],
medicGoodsName: [
{
required: true,
message: "请输入商品名称或品牌名/商品名",
trigger: "blur",
},
],
specifications: [{ required: true, message: "请输入规格", trigger: "blur" }],
productionCompany: [
{ required: true, message: "请输入生产企业", trigger: "blur" },
],
medicalCategoryId: [
{ required: true, message: "请选择药品分类", trigger: "change" },
],
approvalNumber: [
{ required: true, message: "请输入批准文号", trigger: "blur" },
],
// dosageId:[
// { required: true, message: "请选择剂型", trigger: "change" }
// ],
categoryIdLevel2: [
{ required: true, message: "请选择药品类型", trigger: "blur" },
],
categoryIdLevel3: [
{ required: true, message: "请选择一级类目", trigger: "blur" },
],
categoryIdLevel4: [
{ required: true, message: "请选择二级类目", trigger: "blur" },
],
categoryIdLevel5: [
{ required: true, message: "请选择三级类目", trigger: "blur" },
],
specification_url: [
{ required: true, message: "请上传药品说明书", trigger: "blur" },
],
// otc:[
// { required: true, message: "请选择是否是处方", trigger: "blur" }
// ],
dynamicFlag: [
{ required: true, message: "请选择内容发布权", trigger: "blur" },
],
};
const rules2 = {
// barCode: [
// { required: true, message: "请输入条形码", trigger: "submit" },
// { validator: checkBarcode, trigger: "submit" }
// ],
checkName: [{ required: true, message: "请输入检测名称", trigger: "blur" }],
hospitalName: [
{ required: true, message: "请输入医疗机构名称", trigger: "blur" },
],
hospitalType: [
{ required: true, message: "请选择医疗机构类型", trigger: "blur" },
],
checkItem: [{ required: true, message: "请输入检测项目", trigger: "blur" }],
checkStandard: [
{ required: true, message: "请输入检测指标", trigger: "blur" },
],
useCount: [
{ required: true, message: "请输入使用人数", trigger: "submit" },
{ validator: checkNumber, trigger: "submit" },
],
checkType: [{ required: true, message: "请选择检测类型", trigger: "blur" }],
suitableArr: [{ required: true, message: "请选择适用人群", trigger: "blur" }],
endTime: [{ required: true, message: "请选择商品使用日期", trigger: "blur" }],
// goodsCheckImages: [
// { required: true, message: "请上传检测说明图", trigger: "blur" }
// ],
};
const rules = {
// barCode: [
// { required: true, message: "请输入条形码", trigger: "blur" },
// { validator: checkBarcode, trigger: "blur" },
// ],
optPrice: [{ required: true, message: "请输入价格", trigger: "blur" }],
saleType: [{ required: true, message: "请选择销售方式", trigger: "change" }],
stock: [{ required: true, message: "请输入库存", trigger: "blur" }],
minWhole: [{ required: true, message: "请输入最小起批", trigger: "blur" }],
expressLimitFlag: [
{
required: true,
message: "请选择是否支持售后",
trigger: "change",
},
],
};
const rules3 = {
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "blur" },
// { validator: checkProjectStr, trigger: "submit" },
],
goodsDescription: [
{ required: true, message: "请输入商品介绍", trigger: "blur" },
],
goodsHeaderImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" },
],
goodsCategoryIdList: [
{ required: true, message: "请选择商品分类", trigger: "change" },
],
};
export const originRules1 = rules1;
export const originRules2 = rules2;
export const originRules3 = rules3;
export const originRules = rules;
.create-shop-wrapper-new {
.create-shop-content {
background: #fff;
padding: 10px;
.step-content {
overflow: hidden;
height: 60px;
padding: 10px 10px 50px;
border-bottom: 1px solid #efefef;
.title {
font-size: 13px;
color: #449284;
}
}
.word-tip {
color: #e6af7a;
}
.word-show {
color: #449284;
cursor: pointer;
}
}
.suitableList-select {
width: 445px;
}
.el-button--text {
color: #449284;
font-size: 14px;
&::after {
content: "";
position: relative;
height: 14px;
/*border-right: 1px solid #EBEEF5;*/
border-right: 1px solid #aaaaaa;
padding-right: 10px;
}
&:last-of-type {
&::after {
content: "";
position: relative;
width: 1px;
height: 14px;
border-right: none;
}
}
}
.required-label .el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
.required-label .el-form-item__content .bg-uploader .el-upload{
width: 100%;
}
.goods-category,
.project-req {
.el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
.project-tip {
color: #aaaaaa;
}
}
.choice-goods {
.el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
}
.label-detailimg {
.el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
.bg-uploader {
.el-upload {
display: flex;
}
}
}
.basic-item-icon {
position: relative;
.show-goods-table {
.del-goods {
color: #449284;
cursor: pointer;
}
}
.require {
position: absolute;
left: 67px;
top: 11px;
color: #f56c6c;
}
.error-message {
font-size: 12px;
color: #f56c6c;
}
.upload-message {
position: absolute;
left: 0;
top: 105px;
font-size: 12px;
color: #f56c6c;
}
.backTip {
font-size: 12px;
color: red;
cursor: pointer;
}
.ad-back {
color: #449284;
}
.img-delete {
position: absolute;
left: 50%;
top: 50%;
width: 84px;
height: 100%;
background: #000;
opacity: 0.7;
transform: translate(-50%,-50%);
z-index: 999;
i {
color: #fff;
margin-top: 39px;
margin-left: 0px;
}
}
}
.word-num {
font-size: 12px;
color: #999;
// padding-top: 5px;
}
.line {
margin-left: 10px;
width: 20px;
}
.bg-uploader {
.bg-img {
float: left;
width: 84px;
height: 100px;
}
.limit-text {
float: left;
margin-left: 10px;
margin-top: -10px;
p {
font-size: 12px;
color: #999;
text-align: left;
}
}
}
.el-upload__tip {
position: absolute;
top: -6px;
left: 130px;
}
.span-mt-10 {
.edit-img {
width: 20px;
margin-top: 10px;
}
}
.p-tips {
font-size: 13px;
color: #8c8c8c;
line-height: 26px;
}
.part-tit {
font-size: 14px;
padding: 20px 0 20px 20px;
}
.inline {
.el-form-item {
display: inline-block;
vertical-align: top;
.el-radio__label {
font-size: 12px;
}
}
}
.stock-com {
width: 158px;
height: 32px;
border-radius: 4px;
overflow: hidden;
.sp {
display: inline-block;
float: left;
color: #fff;
}
.sp-c {
line-height: 30px;
height: 30px;
width: 92px;
text-align: center;
color: #666;
border-top: 1px solid #449284;
border-bottom: 1px solid #449284;
}
.sp-l {
border-right: 1px solid #449284;
}
.sp-r {
border-left: 1px solid #449284;
border-radius: 0 4px 4px 0;
}
.sp-l,
.sp-r {
width: 32px;
text-align: center;
line-height: 32px;
font-size: 13px;
background: #449284;
cursor: pointer;
}
.opac {
opacity: 0.5;
}
}
.stock-dia {
.stock-item {
padding-bottom: 20px;
}
}
.fast-opt {
font-size: 12px;
padding: 0 10px;
cursor: pointer;
color: #449284;
}
.file-pics {
display: inline-block;
width: 84px;
height: 100px;
float: left;
margin-right: 15px;
position: relative;
}
.el-input-number__decrease,
.el-input-number__increase {
position: absolute;
z-index: 1;
top: 1px;
width: 40px;
height: auto;
text-align: center;
background: #449284 !important;
color: #606266;
cursor: pointer;
font-size: 13px;
}
.el-icon-plus {
color: #ffffff;
}
.el-icon-minus {
color: #ffffff;
}
#introVideoLecture {
height: 140px;
}
.video-progress {
width: 20%;
}
.el-upload-list {
width: 30%;
}
.label-video {
position: relative;
.el-button:focus,
.el-button:hover {
color: #449284;
border-color: #449284;
background-color: #ecf5ff;
}
.dl-video {
position: absolute;
top: 50%;
left: 35%;
transform: translate(-50%, -50%);
}
}
.add-goods-dialog {
.el-dialog__body {
padding-left: 35px;
padding-right: 35px;
}
.add-btn-row {
text-align: right;
}
.add-goods-table {
margin-top: 10px;
margin-bottom: 20px;
}
.add-goods-search {
margin-left: 10px;
}
.add-goods--pagination {
text-align: right;
margin-top: 25px;
margin-bottom: 25px;
}
}
.add-btn.is-disabled {
background: #fff !important;
border: 1px solid #dcdfe6 !important;
color: #606266 !important;
}
.add-med-dialog {
.medic-goods-max {
.el-input__inner {
padding-right: 45px;
}
}
}
.example-dialog {
img {
width: 100%;
height: 100%;
}
}
}
此差异已折叠。
此差异已折叠。
...@@ -66,7 +66,7 @@ const form = { ...@@ -66,7 +66,7 @@ const form = {
mostCount: -1, mostCount: -1,
incrType: 1, incrType: 1,
saleType: 1, saleType: 1,
minWhole: 0, minWhole: 1,
expressLimitFlag: 0, //是否支持退货退款 expressLimitFlag: 0, //是否支持退货退款
}; };
...@@ -76,8 +76,10 @@ const form3 = { ...@@ -76,8 +76,10 @@ const form3 = {
goodsHeaderImages: [], goodsHeaderImages: [],
goodsVideoList: [], goodsVideoList: [],
goodsType: "", goodsType: "",
businessCategoryId:"", // businessCategoryId: "",
expressLimitFlag: 0, //是否支持退货退款 expressLimitFlag: 0, //是否支持退货退款
cooperationProjectId: '', // 合作项目id
contractId: '', // 合同id
}; };
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<el-input v-model="id" size="small" placeholder="请输入商品ID"></el-input> <el-input v-model="id" size="small" placeholder="请输入商品ID"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <!-- <el-col :span="6">
<el-form-item label="商品类型"> <el-form-item label="商品类型">
<el-select <el-select
v-model="searchForm.goodsType" v-model="searchForm.goodsType"
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<el-row :gutter="30" type="flex" style="margin-top: 10px"> <el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="6"> <el-col :span="6">
...@@ -111,9 +111,17 @@ ...@@ -111,9 +111,17 @@
<el-table-column prop="goodsId" label="商品ID" width="120" align="center"> <el-table-column prop="goodsId" label="商品ID" width="120" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="goodsName" label="商品名称" width="160" align="center" show-overflow-tooltip></el-table-column> <el-table-column prop="goodsName" label="商品名称" width="160" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="type" label="商品类型" width="100" align="center"> <el-table-column prop="medicationName" label="药品名称" width="160" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="goodsCategoryStrArr" label="商品分类" width="160" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.goodsTypeStr }}</span> <p v-for="(item,index) in scope.row.goodsCategoryStrArr" :key="index">
{{item}}
</p>
</template>
</el-table-column>
<el-table-column prop="medicalCategoryStrArr" label="药品分类" width="100" align="center">
<template slot-scope="scope">
<span>{{ handleTableArry(scope.row.medicalCategoryStrArr) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="status" label="商品状态" width="100" align="center"> <el-table-column prop="status" label="商品状态" width="100" align="center">
...@@ -558,14 +566,28 @@ ...@@ -558,14 +566,28 @@
} }
}, },
}, },
methods: { methods: {
handlePreview(){}, handlePreview(){},
handleRemove(){}, handleRemove(){},
beforeRemove(){}, beforeRemove(){},
handleSelectionChange(val){ handleSelectionChange(val){
this.selectList = val this.selectList = val
}, },
handleTableArry(val){
let str = ''
let newVal = []
if (val.length > 0) {
val.map(item => {
if (item !== '') {
newVal.push(item);
}
})
}
if (newVal.length > 0) {
str = newVal.join('/')
}
return str;
},
//批量上传 //批量上传
getBatchUpload(file) { getBatchUpload(file) {
let self = this; let self = this;
...@@ -662,6 +684,7 @@ ...@@ -662,6 +684,7 @@
}); });
} }
this.tableData = res.data.goodsList; this.tableData = res.data.goodsList;
this.totalRows = res.data.totalCount; this.totalRows = res.data.totalCount;
this.isSSO = res.data.isSSO; this.isSSO = res.data.isSSO;
}) })
...@@ -709,9 +732,9 @@ ...@@ -709,9 +732,9 @@
// storeType 1: "供货商",2: "小药房",3: "医生小店" // storeType 1: "供货商",2: "小药房",3: "医生小店"
let url = '' let url = ''
if(row == 'add'){ if(row == 'add'){
url = `/create-good?id=add&storeId=${this.searchForm.storeId}&inputType=1&commissionFlag=${this.commissionFlag}&storeType=${this.storeType}` url = `/create-good-new?id=add&storeId=${this.searchForm.storeId}&inputType=1&commissionFlag=${this.commissionFlag}&storeType=${this.storeType}`
}else{ }else{
url = `/create-good?id=${row.goodsId}&storeId=${this.searchForm.storeId}&goodsType=${goodsType}&commissionFlag=${this.commissionFlag}&storeType=${storeType}` url = `/create-good-new?id=${row.goodsId}&storeId=${this.searchForm.storeId}&goodsType=${goodsType}&commissionFlag=${this.commissionFlag}&storeType=${storeType}`
} }
// this.$store.dispatch('goodsManage/changeGoodsInfo', {...row}); // this.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
this.$router.push({ this.$router.push({
......
...@@ -464,7 +464,7 @@ ...@@ -464,7 +464,7 @@
goGoodsEdit(row) { goGoodsEdit(row) {
// this.$store.dispatch('goodsManage/changeGoodsInfo', {...row}); // this.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
this.$router.push({ this.$router.push({
path: '/create-good', path: '/create-good-new',
query: { query: {
id: row.goodsId, id: row.goodsId,
storeId: this.storeId, storeId: this.storeId,
......
...@@ -66,6 +66,8 @@ ...@@ -66,6 +66,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="hospitalName" label="机构" align="center"></el-table-column> <el-table-column prop="hospitalName" label="机构" align="center"></el-table-column>
<el-table-column prop="countyName" label="区/县" show-overflow-tooltip></el-table-column>
<el-table-column prop="townName" label="乡镇/街道" show-overflow-tooltip></el-table-column>
<el-table-column prop="addressName" label="地区" align="center"></el-table-column> <el-table-column prop="addressName" label="地区" align="center"></el-table-column>
<el-table-column v-if="tableType == 1" prop="finishFlag" label="参与课程状态" align="center"> <el-table-column v-if="tableType == 1" prop="finishFlag" label="参与课程状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<p class="title">微信:</p> <p class="title">微信:</p>
<p class="info" v-if="patientInfo.isWechatBind == '1'">未绑定 <el-button type="text" class="ml10" @click="remindBind" style="color: #449284;" v-if="patientInfo.isRemind == '1'">提醒绑定</el-button><span class="ml10" v-if="patientInfo.isRemind == '2'">已提醒</span></p> <p class="info" v-if="patientInfo.isWechatBind == '1'">未绑定 <el-button type="text" class="ml10" @click="remindBind" style="color: #449284;" v-if="patientInfo.isRemind == '1'">提醒绑定</el-button><span class="ml10" v-if="patientInfo.isRemind == '2'">已提醒</span></p>
<!--<p class="info" v-else-if="patientInfo.isWechatBind == '2'">已绑定 <span class="ml10">(微信名:{{patientInfo.wechatNickname | emptyFilter}}</span></p>--> <!--<p class="info" v-else-if="patientInfo.isWechatBind == '2'">已绑定 <span class="ml10">(微信名:{{patientInfo.wechatNickname | emptyFilter}}</span></p>-->
<p class="info" v-else-if="patientInfo.isWechatBind == '2'">{{patientInfo.wechatNickname | emptyFilter}}</p> <p class="info" v-else-if="patientInfo.isWechatBind == '2'">{{patientInfo.wechatNickname || '微信用户'}}</p>
<p class="info" v-else>-</p> <p class="info" v-else>-</p>
</div> </div>
</div> </div>
......
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
/> />
</div> </div>
<div class="space-between flex-c"> <div class="space-between flex-c">
<div>法人姓名:{{ detail.legalName }}</div> <div>法人姓名:{{ detail.legalName }}</div>
<div>法人身份证号:{{ detail.legalCertNo }}</div> <div>法人身份证号:{{ detail.legalCertNo }}</div>
<div> <div>
法人身份证有效日期:{{ detail.legalValidDateBegin }} 法人身份证有效日期:{{ detail.legalValidDateBegin }}
......
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册