config client name 80%

pull/1/head
Saeid 5 years ago
parent 2c990d8f38
commit ab3497449c

10164
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -10,9 +10,10 @@
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=webpack.config.js"
},
"dependencies": {
"@ckeditor/ckeditor5-build-classic": "^12.3.1",
"@ckeditor/ckeditor5-font": "^11.2.1",
"@ckeditor/ckeditor5-vue": "^1.0.0-beta.2",
"@ckeditor/ckeditor5-build-classic": "^12.4.0",
"@ckeditor/ckeditor5-build-decoupled-document": "^16.0.0",
"@ckeditor/ckeditor5-font": "^16.0.0",
"@ckeditor/ckeditor5-vue": "^1.0.1",
"@fortawesome/fontawesome-free": "^5.5.0",
"@riophae/vue-treeselect": "^0.4.0",
"ajv": "^6.10.0",
@ -33,15 +34,18 @@
"jalali-moment": "^3.3.3",
"loadash": "^1.0.0",
"object-to-formdata": "^2.1.2",
"postcss-loader": "^3.0.0",
"raw-loader": "^0.5.1",
"vee-validate": "^2.2.15",
"vue-advanced-cropper": "^0.14.1",
"vue-apexcharts": "^1.4.0",
"vue-apollo": "^3.0.0-alpha.3",
"vue-chartjs": "^3.4.0",
"vue-ckeditor5": "^0.4.1",
"vue-cropperjs": "^4.0.1",
"vue-gallery": "^2.0.1",
"vue-jalali-moment": "^1.0.0",
"vue-moment": "^4.0.0",
"vue-moment": "^4.1.0",
"vue-router": "^3.0.2",
"vue-scroll-reveal": "^1.0.11",
"vue-the-mask": "^0.11.1",
@ -52,6 +56,7 @@
"devDependencies": {
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/preset-env": "^7.6.2",
"@ckeditor/ckeditor5-alignment": "^16.0.0",
"@mdi/font": "^3.9.97",
"cross-env": "^5.1",
"deepmerge": "^4.0.0",

@ -1,9 +1,9 @@
{
"/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=5e4a6c5d0ae398c7ee59",
"/js/vue/Home/app.js": "/js/vue/Home/app.js?id=7d2de4f2c69a8160396c",
"/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=e592a7ab2ecc42a35ac2",
"/js/vue/Product/app.js": "/js/vue/Product/app.js?id=1940f3ac8bcadb54cf0d",
"/js/vue/SMS/app.js": "/js/vue/SMS/app.js?id=05c7408a0a7800b8565b",
"/js/vue/Service/app.js": "/js/vue/Service/app.js?id=d22095ca59cae53ffcd6",
"/js/vue/User/app.js": "/js/vue/User/app.js?id=20f1e4d6a21d09a5f295"
"/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=c518f6702a3d6b999912",
"/js/vue/Home/app.js": "/js/vue/Home/app.js?id=4134097cbd2afcf6e5c6",
"/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=6399210ae58926ddd29a",
"/js/vue/Product/app.js": "/js/vue/Product/app.js?id=f7e7fc8a864db113e246",
"/js/vue/SMS/app.js": "/js/vue/SMS/app.js?id=cbcd9382b92018456d3c",
"/js/vue/Service/app.js": "/js/vue/Service/app.js?id=55d984e997ac17be1da4",
"/js/vue/User/app.js": "/js/vue/User/app.js?id=34524bfe2b8492ced23a"
}

@ -1,17 +1,18 @@
import { mapActions } from "vuex";
import globalStore from "@Global/store";
import authStore from "@Core/store";
import permissionList from "@Global/utils/Permissions/list";
import { UserService } from "@Global/services/storage.services";
import $_can from "@Global/policy/can";
import $_name from "@Global/utils/category-name/name";
const global = {
methods: {
$_getPath(subPath = "") {
subPath = subPath.startsWith("/") ? subPath.substr(1) : subPath;
const path = process.env.MIX_PUSHER_APP_PUBLIC_PATH
? process.env.MIX_PUSHER_APP_PUBLIC_PATH
: "/";
return path + subPath;
$_getPath(subPath = "", is_complete_url = false) {
if (is_complete_url && process.env.MIX_PUSHER_APP_PRODUCT == 'true') {
return subPath;
} else {
subPath = subPath.startsWith("/") ? subPath.substr(1) : subPath;
const path = process.env.MIX_PUSHER_APP_PUBLIC_PATH
? process.env.MIX_PUSHER_APP_PUBLIC_PATH
: "/";
return path + subPath;
}
},
//Modal
@ -25,32 +26,8 @@ const global = {
$_can,
$_name,
//Permission
$_hasPermission(permission, owner = false, module = null) {
let currentModule = module ? module : globalStore.state.common.current_module;
let permissions = authStore.state.auth.permissions;
let multiPermission = permission.split("|");
let siteOwner = UserService.get().is_owner == "true";
for (const iterator of multiPermission) {
if (iterator == "") {
return true;
}
permission = permissionList[iterator];
if (
siteOwner ||
owner ||
(permission &&
permissions[currentModule] &&
Object.values(permissions[currentModule]).includes(
permission
))
) {
return true;
}
}
return false;
}
}
};

@ -1,4 +1,5 @@
import Vue from 'vue';
import CKEditor from "@ckeditor/ckeditor5-vue";
import "@ckeditor/ckeditor5-build-classic/build/translations/fa.js";
import "@ckeditor/ckeditor5-build-decoupled-document/build/translations/fa.js";
// import "@ckeditor/ckeditor5-build-classic/build/translations/fa.js";
Vue.use(CKEditor);

@ -1,8 +1,9 @@
import Vue from 'vue';
// global Styles
import "@Global/scss/style.scss";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";//for tree select
import "@Global/scss/style.scss";
// global Components
import PartTitle from "@Global/components/Dividers/PartTitle.vue";

@ -199,6 +199,11 @@
margin-right: 5px;
}
.hasConfig .v-card__text {
width: calc(100% - 50px);
float: right;
}
.WM-Pointer {
cursor: pointer;
}

@ -239,8 +239,8 @@ table.v-table tbody td {
}
.v-btn.XS {
width: 30px;
height: 30px;
width: 32px;
height: 32px;
}
.v-btn.XS .v-icon {
@ -397,6 +397,49 @@ $Value in $Shadows {
padding: 0px;
}
// ------------------------------------------------------------------
// Expansion-Panel :: End
// ------------------------------------------------------------------
// ------------------------------------------------------------------
// ------------------------------------------------------------------
// tree select :: Begin
// ------------------------------------------------------------------
.vue-treeselect__control {
border: none;
border-bottom: 1px solid #c7c7c7;
border-radius: 0px;
}
.vue-treeselect__multi-value-item {
background: #eeeeee;
color: #484848;
}
.vue-treeselect__value-remove {
color: #484848;
}
// ------------------------------------------------------------------
// tree select :: End
// ------------------------------------------------------------------
// ------------------------------------------------------------------
// validation-error:: Begin
// ------------------------------------------------------------------
.theme--light.v-text-field.error--text > .v-input__control > .v-input__slot:before {
border-color: rgba(235, 15, 15, 0.76);
border-top-color: rgba(235, 15, 15, 0.76);
border-right-color: rgba(235, 15, 15, 0.76);
border-bottom-color: rgba(235, 15, 15, 0.76);
border-left-color: rgba(235, 15, 15, 0.76);
}
.theme--light.v-messages.error--text {
color: rgba(216, 17, 17, 0.8);
}
// ------------------------------------------------------------------
// validation-error:: End
// ------------------------------------------------------------------

@ -1,73 +0,0 @@
export default {
indexTask: "index-task",
storeTask: "store-task",
receiveTask: "receive-task",
updateTask: "update-task",
deleteTask: "delete-task",
indexTaskCategory: "index-task-category",
storeTaskCategory: "store-task-category",
updateTaskCategory: "update-task-category",
deleteTaskCategory: "delete-task-category",
indexTaskStatus: "index-task-status",
storeTaskStatus: "store-task-status",
updateTaskStatus: "update-task-status",
deleteTaskStatus: "delete-task-status",
indexEvent: "index-event",
storeEvent: "store-event",
updateEvent: "update-event",
deleteEvent: "delete-event",
indexEventCategory: "index-event-category",
storeEventCategory: "store-event-category",
updateEventCategory: "update-event-category",
deleteEventCategory: "delete-event-category",
indexComment: "index-comment",
storeComment: "store-comment",
updateComment: "update-comment",
deleteComment: "delete-comment",
indexClient: "index-client",
storeClient: "store-client",
showClient: "show-client",
updateClient: "update-client",
deleteClient: "delete-client",
indexClientCategory: "index-client-category",
storeClientCategory: "store-client-category",
updateClientCategory: "update-client-category",
deleteClientCategory: "delete-client-category",
indexClientTitle: "index-client-title",
storeClientTitle: "store-client-title",
updateClientTitle: "update-client-title",
deleteClientTitle: "delete-client-title",
indexClientStatus: "index-client-status",
storeClientStatus: "store-client-status",
updateClientStatus: "update-client-status",
deleteClientStatus: "delete-client-status",
indexUser: "index-user",
showUser: "show-user",
storeUser: "store-user",
updateUser: "update-user",
deleteUser: "delete-user",
indexDepartment: "index-department",
storeDepartment: "store-department",
updateDepartment: "update-department",
deleteDepartment: "delete-department",
indexRole: "assign-role",
assignRole: "assign-role",
storeRole: "store-role",
updateRole: "update-role",
deleteRole: "delete-role",
sendEmail: "send-email",
sendSMS: "send-sms"
};

@ -0,0 +1,8 @@
import CRM from './modules/crm';
import Common from './modules/common';
export default {
modules: {
crm: CRM,
common: Common,
},
}

@ -0,0 +1,18 @@
export default {
task: {
my_task: {name: '', name_en: ''},
my_request: {name: '', name_en: ''},
name: 'وظیفه',
name_en: 'Task',
category: {name: 'دسته بندی', name_en: 'Caegory'},
status: {name: 'وضعیت', name_en: 'Status'},
},
transaction: {
name: 'تراکنش',
name_en: 'Transaction',
},
comment: {
name:'',
name_en:'',
},
}

@ -0,0 +1,52 @@
export default{
client: {
name: 'مشتری',
names: 'مشتریان',
name_en: 'Client',
title: {
list: {name:'مشتریان من', name_en: 'My Clinents'},
change_status: {name: 'تغییر وضعیت مشتری', name_en: 'Change Clients Status'},
detail: {name:'جزییات مشتری', name_en: 'Client Details'},
quick_add: {name:'افزودن سریع مشتری', name_en: 'Customer Quick Add'},
add: {name:'افزودن مشتری جدید', name_en: 'Add a new Client '},
},
},
client_title: {
name: 'عنوان مشتری',
name_en: 'Title',
title: {
add: {name:' افزودن عنوان مشتری جدید ', name_en: ' Add a Title '},
list: {name:' ویرایش عنوان مشتری ها ', name_en: ' Edit Client\'s Title '},
}
},
client_category: {
name: 'دسته',
name_en: 'Category',
title: {
list: {name:' ویرایش دسته بندی مشتری ها ', name_en: 'Edit Client\'s Category '},
},
},
client_status: {
name: 'وضعیت',
name_en: 'Status',
title: {
list: {name:' ویرایش وضعیت مشتری ها ', name_en: ' Edit Client\'s Status '},
}
},
task: {
title: {
list_title:{name: 'وظایف من در مدیریت ارتباط با مشتری', name_en: 'MY CRM TASKS'}
}
},
request: {
title: {
list: {name: 'درخواست های من در مدیریت ارتباط با مشتری', name_en: 'MY CRM Request'}
}
},
tile: {
chart: {name: 'نمودار و آمارها', name_en: 'Statistics'},
task: {name: 'وظایــــــف مـــــــن', name_en: 'MY TASKS'},
request: {name: 'درخواســت های مـــن', name_en: 'MY Requests'},
client: {name: 'مشتــــــــریان مـــــــــن ', name_en: 'My Clients'}
}
}

@ -0,0 +1,31 @@
import Name from './index';
// $_name in text replace
export default (path, text = '$_name') => {
let arrayPath = path.split('.');
//should be get from storage
let name = Name.modules;
for (const component of arrayPath) {
if (name[component]) {
name = name[component];
} else {
return defaultName(path, text);
}
}
return text.replace('$_name', name);
}
function defaultName(path, text) {
let arrayPath = path.split('.');
let name = Name.modules;
for (const component of arrayPath) {
if (name[component]) {
name = name[component];
} else {
return 'DissMiss';
}
}
return text.replace('$_name', name);
}
Loading…
Cancel
Save