pull/1/head
saeid 5 years ago
commit 31432ecb87

4805
composer.lock generated

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

67691
public/Home/js/app.js vendored

File diff suppressed because one or more lines are too long

63550
public/Module/js/app.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,101 +0,0 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 2);
/******/ })
/************************************************************************/
/******/ ({
/***/ 2:
/*!*****************************************************!*\
!*** multi ./resources/js/Modules/NewDesign/app.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
!(function webpackMissingModule() { var e = new Error("Cannot find module 'C:\\Users\\WillaMall - Hassani\\Documents\\WM -Next Generation\\resources\\js\\Modules\\NewDesign\\app.js'"); e.code = 'MODULE_NOT_FOUND'; throw e; }());
/***/ })
/******/ });

File diff suppressed because one or more lines are too long

67934
public/User/js/app.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

101
public/crm/js/app.js vendored

@ -1,101 +0,0 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 5);
/******/ })
/************************************************************************/
/******/ ({
/***/ 5:
/*!***********************************!*\
!*** multi ./resources/js/app.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
!(function webpackMissingModule() { var e = new Error("Cannot find module 'C:\\Users\\WillaMall - Hassani\\Documents\\WM-NextGeneration\\resources\\js\\app.js'"); e.code = 'MODULE_NOT_FOUND'; throw e; }());
/***/ })
/******/ });

99
public/js/app.js vendored

@ -1,99 +0,0 @@
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/*!***********************************!*\
!*** multi ./resources/js/app.js ***!
\***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
!(function webpackMissingModule() { var e = new Error("Cannot find module 'C:\\Users\\WillaMall - Hassani\\Documents\\willamall_new\\resources\\js\\app.js'"); e.code = 'MODULE_NOT_FOUND'; throw e; }());
/***/ })
/******/ ]);

594
public/js/scripts.js vendored

@ -1,594 +0,0 @@
// ---------- Loading Screen ---------- //
;(function(){
function id(v){ return document.getElementById(v); }
function loadbar() {
var loading = id("loading"),
stat = id("progstat"),
img = document.images,
c = 0,
tot = img.length,
loadedEls = document.querySelectorAll(".hideOnLoad");
disableScroll();
setTimeout(function () {
for (var i = loadedEls.length - 1; i >= 0; i--) {
var loadedEl = loadedEls[i];
loadedEl.style.display = "block";
};
init(); // canvas three js init
animate(); // canvas three js animate
run(); // canvas background animation
setTimeout(start, 300);
}, 100);
if(tot == 0) return doneLoading();
function imgLoaded(){
c += 1;
var perc = ((100/tot*c) << 0) +"%";
stat.innerHTML = "Loading "+ perc;
if(c===tot) return doneLoading();
}
function doneLoading(){
setTimeout(function(){
//loading.style.display = "none";
appear();
enableScroll();
}, 2500);
}
for(var i=0; i<tot; i++) {
var tImg = new Image();
tImg.onload = imgLoaded;
tImg.onerror = imgLoaded;
tImg.src = img[i].src;
}
}
document.addEventListener('DOMContentLoaded', loadbar, false);
}());
if (/Edge/.test(navigator.userAgent) || /Safari/.test(navigator.userAgent)) {
var isSafari = true;
} else {
var isSafari = false;
}
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
// ---------- Current Year for Copyright ---------- //
var currentYear = (new Date()).getFullYear();
var copyRight = document.getElementById('copyRightYear');
var copyRight2 = document.getElementById('copyRightYear2');
copyRight.innerHTML = currentYear;
copyRight2.innerHTML = currentYear;
// ---------- Custom Cursor + Section Tilt (Mousemove event) ---------- //
(function() {
"use strict";
var w = window;
const b = document.getElementsByTagName("body")[0];
b.addEventListener("mousemove", mouseMove);
var cursor = document.getElementById('cursor');
b.addEventListener("mousedown", cursorClick);
b.addEventListener("mouseup", cursorUnclick);
var panel = document.querySelectorAll(".section.active");
var text = document.querySelectorAll(".section-tagline-wrapper");
var img = document.querySelectorAll(".section-img-wrapper");
var no = document.querySelectorAll(".section-no-wrapper");
var cImg = document.querySelectorAll('.pattern');
var patterns = document.querySelectorAll('.pattern');
function mouseMove(e) {
// Custom Cursor
cursor.style.left = e.clientX + 'px';
cursor.style.top = e.clientY + 'px';
if (menu.classList.contains('active')){return}
if (!isFirefox) {
// Tilt Effect
var sxPos = (e.clientX*1.5) / w.innerWidth * 100 - 100;
var syPos = (e.clientY*1.5) / w.innerHeight * 100 - 100;
TweenMax.to(no, 2, {
rotationY: 0.06 * sxPos,
rotationX: -0.06 * syPos,
transformPerspective: 500,
transformOrigin: "center center -100",
ease: Expo.easeOut
});
TweenMax.to(text, 2, {
rotationY: 0.06 * sxPos,
rotationX: -0.06 * syPos,
transformPerspective: 500,
transformOrigin: "center center -450",
ease: Expo.easeOut
});
TweenMax.to(img, 2, {
rotationY: 0.06 * sxPos,
rotationX: -0.06 * syPos,
transformPerspective: 500,
transformOrigin: "center center -300",
ease: Expo.easeOut
});
}
//Pattern Clipping Mask
if (isChrome) {
for (var i = patterns.length - 1; i >= 0; i--) {
var pattern = patterns[i];
pattern.style.display = "block";
clipMask(pattern, e);
};
}
}
function clipMask(pattern, e) {
pattern.style.setProperty("--clip-position", e.clientX + 'px ' + e.clientY + 'px');
}
function cursorClick(e) {
cursor.classList.add("clicked")
}
function cursorUnclick(e) {
setTimeout(function() {
cursor.classList.remove("clicked")
}, 300);
}
function cursorHover(e) {
cursor.classList.add("hover")
}
function cursorUnhover(e) {
cursor.classList.remove("hover")
}
var hovers = document.querySelectorAll(".hover-target");
for (var i = hovers.length - 1; i >= 0; i--) {
var hover = hovers[i];
hoverHandler(hover);
};
function hoverHandler(hover) {
hover.addEventListener("mouseover", cursorHover);
hover.addEventListener("mouseout", cursorUnhover);
}
})();
// ---------- Smooth Scroll on Click ---------- //
function anchorLinkHandler(e) {
const distanceToTop = el => Math.floor(el.getBoundingClientRect().top);
e.preventDefault();
const targetID = this.getAttribute("href");
const targetAnchor = document.querySelector(targetID);
if (!targetAnchor) return;
const originalTop = distanceToTop(targetAnchor);
window.scrollBy({ top: originalTop, left: 0, behavior: "smooth" });
const checkIfDone = setInterval(function() {
if (distanceToTop(targetAnchor) === 0 /*|| atBottom*/) {
targetAnchor.tabIndex = "-1";
targetAnchor.focus();
clearInterval(checkIfDone);
}
}, 100);
}
function navLinkHandler(e) {
const distanceToTop = el => Math.floor(el.getBoundingClientRect().top);
e.preventDefault();
const targetID = this.getAttribute("href");
const targetAnchor = document.querySelector(targetID);
if (!targetAnchor) return;
const originalTop = distanceToTop(targetAnchor);
window.scrollBy({ top: originalTop, left: 0 });
const checkIfDone = setInterval(function() {
if (distanceToTop(targetAnchor) === 0 /*|| atBottom*/) {
targetAnchor.tabIndex = "-1";
targetAnchor.focus();
clearInterval(checkIfDone);
}
}, 100);
}
const linksToAnchors = document.querySelectorAll('.scroll');
const navToAnchors = document.querySelectorAll('.scroll-nav');
linksToAnchors.forEach(each => (each.onclick = anchorLinkHandler));
navToAnchors.forEach(each => (each.onclick = navLinkHandler));
// ---------- Initial Logo Appearance ---------- //
var a = document.getElementById('container');
function start(){ a.classList.add("start"); }
function appear(){
a.classList.add("appear");
}
// ---------- Background Gradient Animation ---------- //
var c = document.getElementById('canvas__bg');
var $ = c.getContext('2d');
var col = function(x, y, r, g, b) {
$.fillStyle = "rgb(" + r + "," + g + "," + b + ")";
$.fillRect(x, y, 1,1);
}
var R = function(x, y, t) {return( Math.floor(130 + 64*Math.cos( (x*x-y*y)/300 + t )) );}
var G = function(x, y, t) {return( Math.floor(0 + 64*Math.sin( (x*x*Math.cos(t/4)+y*y*Math.sin(t/3))/300 ) ) );}
var B = function(x, y, t) {return( Math.floor(250 + 64*Math.sin( 5*Math.sin(t/9) + ((x-100)*(x-100)+(y-100)*(y-100))/1100) ));}
var t = 0;
var run = function() {
for(x=0;x<=35;x++) {
for(y=0;y<=35;y++) {
col(x, y, R(x,y,t), G(x,y,t), B(x,y,t));
}
}
t = t + 0.030;
window.requestAnimationFrame(run);
}
// ---------- Menu Open ---------- //
function openMenu(toggle, menu) {
toggle.classList.add('is-active');
menu.classList.add('active');
disableScroll()
}
function closeMenu(toggle, menu) {
toggle.classList.remove('is-active');
menu.classList.remove('active');
enableScroll()
}
function preventDefault(e) {
e = e || window.event;
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
}
function preventDefaultForScrollKeys(e) {
if (keys[e.keyCode]) {
preventDefault(e);
return false;
}
}
function disableScroll() {
if (window.addEventListener) // older FF
window.addEventListener('DOMMouseScroll', preventDefault, false);
window.onwheel = preventDefault; // modern standard
window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE
window.ontouchmove = preventDefault; // mobile
document.onkeydown = preventDefaultForScrollKeys;
}
function enableScroll() {
if (window.removeEventListener)
window.removeEventListener('DOMMouseScroll', preventDefault, false);
window.onmousewheel = document.onmousewheel = null;
window.onwheel = null;
window.ontouchmove = null;
document.onkeydown = null;
}
(function() {
"use strict";
var toggles = document.querySelectorAll(".c-hamburger");
const menu = document.getElementById("menu");
var navs = document.querySelectorAll(".nav-menu");
for (var i = toggles.length - 1; i >= 0; i--) {
var toggle = toggles[i];
toggleHandler(toggle, menu);
};
function toggleHandler(toggle, menu) {
toggle.addEventListener( "click", function(e) {
e.preventDefault();
(this.classList.contains("is-active") === true) ? closeMenu(toggle, menu) : openMenu(toggle, menu);
});
}
for (var i = navs.length - 1; i >= 0; i--) {
var nav = navs[i];
navHandler(toggle, menu, nav);
};
function navHandler(toggle, menu, nav) {
nav.addEventListener( "click", function(e) {
closeMenu(toggle, menu)
});
}
})();
// ---------- Scroll Mask Fix ---------- //
// detect IE, Edge, Safari browsers
if (isSafari) {
document.documentElement.className = 'scroll-update-fix';
}
// ---------- Text Letters Animation ---------- //
//function animateText() {
// var lettr = document.getElementById("lettr");
// var lines = lettr.querySelectorAll('font');
// for (var x = lines.length - 1; x >= 0; x--) {
// var line = lines[x];
// lineHandler(line);
// };
// function lineHandler(line) {
// var text = line.textContent;
// var wordSplit = text.split("");
// line.innerHTML = "";
// for (w = 0 ; w < wordSplit.length; w++) {
// line.innerHTML += "<span>" + wordSplit[w] + "</span>";
// }
// chars = line.querySelectorAll('span');
// for (var x = chars.length - 1; x >= 0; x--) {
// var char = chars[x];
// charHandler(char, x);
// };
// function charHandler(char, x) {
// char.style.transitionDelay = x * .1 + "s";
// }
// }
//}
// ---------- Canvas Three JS ---------- //
var renderer, scene, camera, composer, circle, skelet, particle;
function init() {
renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
renderer.setPixelRatio((window.devicePixelRatio) ? window.devicePixelRatio : 1);
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.autoClear = false;
renderer.setClearColor(0x000000, 0.0);
document.getElementById('canvas__three').appendChild(renderer.domElement);
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.z = 400;
scene.add(camera);
circle = new THREE.Object3D();
skelet = new THREE.Object3D();
particle = new THREE.Object3D();
scene.add(circle);
scene.add(skelet);
scene.add(particle);
var geometry = new THREE.TetrahedronGeometry(2, 0);
var geom = new THREE.TetrahedronGeometry(7, 0);
var geom2 = new THREE.IcosahedronGeometry(15, 0);
var material = new THREE.MeshPhongMaterial({
color: 0xffffff,
shading: THREE.FlatShading
});
for (var i = 0; i < 20; i++) {
var mesh = new THREE.Mesh(geometry, material);
mesh.position.set(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5).normalize();
mesh.position.multiplyScalar(90 + (Math.random() * 700));
particle.add(mesh);
}
var mat = new THREE.MeshPhongMaterial({
color: 0xffffff,
shading: THREE.FlatShading
});
var mat2 = new THREE.MeshPhongMaterial({
color: 0xffffff,
wireframe: true,
side: THREE.DoubleSide
});
var planet = new THREE.Mesh(geom, mat);
planet.scale.x = planet.scale.y = planet.scale.z = 16;
circle.add(planet);
var planet2 = new THREE.Mesh(geom2, mat2);
planet2.scale.x = planet2.scale.y = planet2.scale.z = 10;
skelet.add(planet2);
var ambientLight = new THREE.AmbientLight(0x666666 );
scene.add(ambientLight);
var lights = [];
lights[0] = new THREE.DirectionalLight( 0xffffff, 1 );
lights[0].position.set( 1, 0, 0 );
lights[1] = new THREE.DirectionalLight( 0xf000ff, 1 );
lights[1].position.set( 0.75, 1, 0.5 );
lights[2] = new THREE.DirectionalLight( 0x3c73ff, 1 );
lights[2].position.set( -0.75, -1, 0.5 );
scene.add( lights[0] );
scene.add( lights[1] );
scene.add( lights[2] );
window.addEventListener('resize', onWindowResize, false);
};
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}
function animate() {
requestAnimationFrame(animate);
particle.rotation.x += 0.0000;
particle.rotation.y -= 0.0040;
circle.rotation.x -= 0.0020;
circle.rotation.y -= 0.0030;
skelet.rotation.x -= 0.0010;
skelet.rotation.y += 0.0020;
renderer.clear();
renderer.render( scene, camera )
};
// ---------- Active Section on Scroll ---------- //
function activateSection() {
if (menu.classList.contains('active')){return}
var scrollPos = window.scrollY;
var sections = document.querySelectorAll('.section');
for (var x = sections.length - 1; x >= 0; x--) {
var section = sections[x];
sectionHandler(section, scrollPos);
};
function sectionHandler(e, scrollPos) {
var elemTop = e.offsetTop - (e.clientHeight/1.5);
var elemBtm = elemTop + e.clientHeight + 200;
if ( scrollPos > elemTop && scrollPos < elemBtm ) {
e.classList.add("active");
} else {
e.classList.remove("active");
}
}
};
// ---------- Document Ready Events ---------- //
window.onload = function() {
//animateText();
}
// --------------- On Scroll Events --------------- //
window.addEventListener('scroll', function() {
activateSection();
});

1009
public/js/vendors.js vendored

File diff suppressed because one or more lines are too long

@ -1,6 +1,6 @@
{ {
"/Authentication/js/app.js": "/Authentication/js/app.js", "/js/vue/Authentication/app.js": "/js/vue/Authentication/app.js?id=e7004e4ba1268d86bc4e",
"/Home/js/app.js": "/Home/js/app.js", "/js/vue/Home/app.js": "/js/vue/Home/app.js?id=54d9152bf6cded09d86f",
"/Modules/CRM/js/app.js": "/Modules/CRM/js/app.js", "/js/vue/Modules/CRM/app.js": "/js/vue/Modules/CRM/app.js?id=5fbc34149a9abb997090",
"/User/js/app.js": "/User/js/app.js" "/js/vue/User/app.js": "/js/vue/User/app.js?id=d4901fd1d97d6496c6d1"
} }

@ -8,6 +8,17 @@
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" نظرات " TitleEn=" Comments " Color="black"></WM-PartTitle> <WM-PartTitle class="WM-Margin-T-20" TitleFa=" نظرات " TitleEn=" Comments " Color="black"></WM-PartTitle>
</v-card-title> </v-card-title>
<v-card-text> <v-card-text>
<v-layout row wrap class="WM-Padding-RL-20">
<v-flex md11>
<v-card-text class="WM-JustSide">
<v-textarea name="input-7-1" label="لطفا متن کامنت خود را بنویسید" value="" hint="هر پیام 53 کاراکتر " color="black" prepend-icon="fas fa-comment-alt"></v-textarea>
</v-card-text>
</v-flex>
<v-flex md1 class="AddComment">
<v-btn fab color="black" dark><v-icon dark>fas fa-chevron-left</v-icon></v-btn>
</v-flex>
</v-layout>
<v-divider></v-divider>
<v-data-iterator :items="comments" :rows-per-page-items="rowsPerPageItems" :pagination.sync="pagination" select-all row wrap rows-per-page-text="آیتم به ازای هر صفحه"> <v-data-iterator :items="comments" :rows-per-page-items="rowsPerPageItems" :pagination.sync="pagination" select-all row wrap rows-per-page-text="آیتم به ازای هر صفحه">
<template v-slot:item="props"> <template v-slot:item="props">
<wm-timeline-item :props="props"></wm-timeline-item> <wm-timeline-item :props="props"></wm-timeline-item>
@ -16,12 +27,11 @@
آیتم {{ props.pageStart }} - {{ props.pageStop }} از {{ props.itemsLength }} آیتم {{ props.pageStart }} - {{ props.pageStop }} از {{ props.itemsLength }}
</template> </template>
</v-data-iterator> </v-data-iterator>
<v-divider></v-divider>
<!-- <wm-timeline-item :tasks="tasks"></wm-timeline-item> --> <!-- <wm-timeline-item :tasks="tasks"></wm-timeline-item> -->
</v-card-text> </v-card-text>
<v-divider></v-divider>
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
@ -96,3 +106,11 @@ export default {
}; };
</script> </script>
<style scoped lang="scss">
.AddComment {
display: flex;
justify-content: center;
align-items: center;
}
</style>

@ -1,66 +0,0 @@
<template>
<v-dialog v-model="$store.state.SendSMS" width="60%" transition="slide-x-transition">
<v-card class="RTL">
<v-card-title class="grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" ارسال پیام کوتاه " TitleEn=" Sending a Text Message " Color="orange darken-3"></WM-PartTitle>
</v-card-title>
<v-card-text>
<v-layout row wrap class="WM-Padding-RL-20">
<v-flex md4>
<v-card-text>
<v-autocomplete prepend-icon="fas fa-align-right" :items="smsTemplates" color="orange" item-text="name" label=" قالب پیام کوتاه "></v-autocomplete>
</v-card-text>
</v-flex>
<v-flex md8>
<v-card-text style="padding-top:6px;">
<v-select v-model="clientNumberValues" :items="clientNumbers" color="orange" attach chips label=" شماره های مورد نظر " multiple></v-select>
</v-card-text>
</v-flex>
<v-flex md12>
<v-card-text class="WM-JustSide">
<v-textarea name="input-7-1" label="لطفا پیام خود را بنویسید" value="" hint="هر پیام 53 کاراکتر " color="orange darken-3" prepend-icon="fas fa-envelope"></v-textarea>
</v-card-text>
</v-flex>
</v-layout>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="orange darken-3" depressed dark @click="$store.state.SendSMS = false">
<v-icon dark right>fa fa-angle-left</v-icon> ارسال پیام
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {
props: {
Color: { default: 'grey darken-4' },
},
data () {
return {
date: new Date().toISOString().substr(0, 10),
date2: new Date().toISOString().substr(0, 10),
eventDateBegin: false,
eventDateEnd: false,
eventRemindDate: false,
smsTemplates: [
{ name: ' تبریک تولد ', id: 1 },
{ name: ' تبریک سال نو ', id: 2 },
{ name: ' تبریک عید فطر ', id: 3 },
],
selfTime: '12:00',
selfTimeMenu: false,
clientNumbers: [' 09127004945 ', ' 09300705030 '],
clientNumberValues: [' 09127004945 ', ' 09300705030 '],
}
}
};
</script>

@ -0,0 +1,82 @@
<template>
<v-dialog v-model="$store.state.ConfigSMSTemplateAdd" width="50%" transition="slide-x-transition">
<v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" افزودن قالب پیام کوتاه " TitleEn=" Add a SMS Template " Color="orange"></WM-PartTitle>
</v-card-title>
<v-card-text>
<div class="row">
<v-flex lg6>
<v-card-text>
<v-text-field label=" نام فارسی نوع رویداد " color="orange" prepend-icon="fas fa-tag" ></v-text-field>
</v-card-text>
</v-flex>
<v-flex lg6>
<v-card-text>
<v-text-field class="LTR" label=" Event Type Name " color="orange" prepend-icon="fas fa-sort-alpha-down" ></v-text-field>
</v-card-text>
</v-flex>
<v-flex lg12>
<v-card-text class="WM-JustSide">
<v-textarea name="input-7-1" label="لطفا قالب پیام خود را بنویسید" value="" hint="هر پیام 53 کاراکتر " color="orange darken-3" prepend-icon="fas fa-envelope"></v-textarea>
<table class="table table-striped RTL WM-Align-C">
<thead>
<tr>
<th scope="col"> تاریخ امروز </th>
<th scope="col"> نام کوچک مخاطب </th>
<th scope="col"> نام خانوادگی مخاطب </th>
<th scope="col"> شماره ی همراه مخاطب </th>
</tr>
</thead>
<tbody>
<tr class="LTR">
<td>$Date</td>
<td>$FirstName</td>
<td>$LastName</td>
<td>$Number </td>
</tr>
</tbody>
</table>
</v-card-text>
</v-flex>
</div>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="orange" depressed dark @click="$store.state.ConfigSMSTemplateAdd = false">
<v-icon dark right>fas fa-check</v-icon> تایید اطاعلاعات
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {
props: {
},
data () {
return {
departments: [
{
name_fa: " فنی ",
name_en: " Technical ",
},
{
name_fa: " فروش ",
name_en: " Sale ",
},
{
name_fa: " مدیریت ",
name_en: " Management ",
}
]
}
}
};
</script>

@ -0,0 +1,106 @@
<template>
<v-container>
<v-layout row wrap>
<v-flex xs12 lg12 mb-3 class="WM-Relative">
<v-expansion-panel popout>
<v-expansion-panel-content v-for="(template,i) in templates" :key="i">
<template v-slot:header>
<v-flex lg4 pt-2 class="text-lg-right FA">
<span class="TitleNumber En">{{ parseInt(i+1) }}.</span>
{{ template.name_fa }}
</v-flex>
<v-flex lg4 pt-2 class="LTR EN">{{ template.name_en }}</v-flex>
<v-flex xl4 class="Buttons text-lg-center">
<v-tooltip top color="black">
<v-btn class="XS" small slot="activator" fab color="orange" dark>
<v-icon dark>fas fa-pencil-alt</v-icon>
</v-btn>
<span> ویرایش </span>
</v-tooltip>
<v-tooltip top color="black">
<v-btn class="XS" small slot="activator" fab color="red" dark>
<v-icon dark>fas fa-trash-alt</v-icon>
</v-btn>
<span> حذف آیتم </span>
</v-tooltip>
</v-flex>
</template>
<v-card>
<v-card-text style="padding:5px 30px">
<div class="WM-Tile" >
<v-layout row wrap class="Content">
<v-flex lg12 class="text-lg-right zIndex99" pt-3>{{ template.text }}</v-flex>
</v-layout>
</div>
</v-card-text>
</v-card>
</v-expansion-panel-content>
</v-expansion-panel>
<v-btn @click.native="$store.state.ConfigSMSTemplateAdd = true" slot="activator" fab color="cyan" bottom left dark style="position:absolute; left:5px; bottom:-20px;">
<v-icon dark>fas fa-plus</v-icon>
</v-btn>
</v-flex>
</v-layout>
<!-- --------------------------------------------------------------------
Modals :: BEGIN
-------------------------------------------------------------------- -->
<template>
<div class="text-xs-center">
<wm-sms-template-add></wm-sms-template-add>
</div>
</template>
<!-- --------------------------------------------------------------------
Modals :: END
-------------------------------------------------------------------- -->
</v-container>
</template>
<script>
import Add from "@Common/components/Contact/SMS/Config/Template/Add.vue";
export default {
components: {
"wm-sms-template-add": Add
},
data() {
return {
templates: [
{ name_fa: " تبریک تولد ", name_en: " Birthday ",
text: " [Name] عزیز، زاد روز تولدتان را گرامی میداریم. هدیه ما برای روز عزیز برای شما، 20 درصد تخفیف استفاده از خدمات خواهد بود. در کنارت هستیم. ",
},
{ name_fa: " تبریک سال نو ", name_en: " New Year ",
text: " [Name] عزیز، زاد روز تولدتان را گرامی میداریم. هدیه ما برای روز عزیز برای شما، 20 درصد تخفیف استفاده از خدمات خواهد بود. در کنارت هستیم. ",
},
{ name_fa: " رزرو وقت ", name_en: " Reservation ",
text: " [Name] عزیز، زاد روز تولدتان را گرامی میداریم. هدیه ما برای روز عزیز برای شما، 20 درصد تخفیف استفاده از خدمات خواهد بود. در کنارت هستیم. ",
}
]
};
}
};
</script>
<style lang="scss">
@import "@Global/scss/Tile.scss";
.WM-Tile {
padding: 0px;
}
.Content .Number {
width: auto;
right: 0px;
bottom: -6px;
}
.v-expansion-panel__container--active .v-expansion-panel__header .FA,
.v-expansion-panel__container--active .v-expansion-panel__header .EN {
font-size: 24px;
}
.TitleNumber {
line-height: 40px;
width: 40px;
font-size: 40px;
color: rgb(0, 0, 0);
}
.v-expansion-panel--inset .v-expansion-panel__container--active,
.v-expansion-panel--popout .v-expansion-panel__container--active {
border: 1px solid #000 !important;
box-shadow: none;
}
</style>

@ -0,0 +1,35 @@
<template>
<v-dialog v-model="$store.state.ConfigSMSTemplateList" width="60%" transition="slide-x-transition">
<v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" مدیریت قالب های پیام کوتاه " TitleEn=" Manage the SMS Templates " Color="orange"></WM-PartTitle>
</v-card-title>
<v-card-text>
<wm-list-view></wm-list-view>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="orange" depressed dark @click="$store.state.ConfigSMSTemplateList = false">
<v-icon dark right>fas fa-check</v-icon> بسیار خب
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
import List from "@Common/components/Contact/SMS/Config/Template/List.vue";
export default {
components: {
'wm-list-view' : List,
},
props: {
Color: { default: 'grey darken-4' },
},
};
</script>

@ -0,0 +1,122 @@
<template>
<v-dialog v-model="$store.state.SendSMS" width="60%" transition="slide-x-transition">
<v-card class="RTL">
<v-card-title class="grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" ارسال پیام کوتاه " TitleEn=" Sending a Text Message " Color="orange darken-3"></WM-PartTitle>
</v-card-title>
<v-card-text>
<v-layout row wrap class="WM-Padding-RL-20">
<v-flex md4>
<v-card-text class="hasConfig">
<v-autocomplete prepend-icon="fas fa-align-right" :items="smsTemplates" color="orange" item-text="name" label=" قالب پیام کوتاه "></v-autocomplete>
<v-tooltip bottom color="black">
<v-btn class="XS" @click.native="$store.state.ConfigSMSTemplateList = true" slot="activator" outline fab color="black" dark>
<v-icon dark>fas fa-pencil-alt</v-icon>
</v-btn>
<span> ویرایش دسته ها </span>
</v-tooltip>
</v-card-text>
</v-flex>
<v-flex md8>
<v-card-text style="padding-top:0px;">
<v-select v-model="clientNumberValues" :items="clientNumbers" color="orange" attach chips label=" شماره های مورد نظر " multiple></v-select>
</v-card-text>
</v-flex>
<v-flex md12>
<v-card-text class="WM-JustSide">
<v-textarea name="input-7-1" label="لطفا پیام خود را بنویسید" value="" hint="هر پیام 53 کاراکتر " color="orange darken-3" prepend-icon="fas fa-envelope"></v-textarea>
</v-card-text>
</v-flex>
</v-layout>
<!-- -------------------------------------------------------------
Remind Me
------------------------------------------------------------- -->
<v-layout row wrap class="WM-Section" style="border-right-color: #ef6c00;">
<v-flex xs12 sm12 md5 class="RTL text-lg-right">
<div class="Step En" style="color:#ef6c00;"> SBS </div>
<div class="Title">
<div class="FA"> ارســــال با زمـــــان بــــــندی </div>
<div class="EN"> Send By Schedule </div>
</div>
<v-switch style="float:left; margin-left:10px;" @change="scheduleState = !scheduleState" color="orange" v-model="Schedule"></v-switch>
</v-flex>
<v-flex xs12 sm12 md7 :class="[ scheduleState ? 'has-blur' : '' ]">
<v-layout row wrap>
<v-flex xs12 sm4 md6>
<v-card-text>
<v-menu :close-on-content-click="false" v-model="scheduleDateState" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
<v-text-field slot="activator" v-model="date" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="purple" readonly></v-text-field>
<v-date-picker v-model="date" @input="scheduleDateState = false" color="purple" locale="fa-ir"></v-date-picker>
</v-menu>
</v-card-text>
</v-flex>
<v-flex xs12 sm4 md6>
<v-card-text>
<v-menu ref="selfTimeMenu" v-model="scheduleTimeState" :close-on-content-click="false" :nudge-right="40" :return-value.sync="scheduleTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px">
<template v-slot:activator="{ on }">
<v-text-field v-model="scheduleTime" label="در ساعت" prepend-icon="fas fa-clock" class="text-lg-center" readonly color="purple" v-on="on"></v-text-field>
</template>
<v-time-picker class="LTR" v-if="scheduleTimeState" v-model="scheduleTime" color="purple" full-width @click:minute="$refs.scheduleTimeState.save(selfTime)" locale="fa-ir"></v-time-picker>
</v-menu>
</v-card-text>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="orange darken-3" depressed dark @click="$store.state.SendSMS = false">
<v-icon dark right>fa fa-angle-left</v-icon> ارسال پیام
</v-btn>
</v-card-actions>
</v-card>
<!-- --------------------------------------------------------------------
Modals :: BEGIN
-------------------------------------------------------------------- -->
<template>
<div class="text-xs-center">
<wm-sms-templates-edit></wm-sms-templates-edit>
</div>
</template>
<!-- --------------------------------------------------------------------
Modals :: END
-------------------------------------------------------------------- -->
</v-dialog>
</template>
<script>
import TemplatesEdit from "@Common/components/Contact/SMS/Config/Template/Modal-Layout.vue";
export default {
components: {
'wm-sms-templates-edit' : TemplatesEdit,
},
props: {
Color: { default: 'grey darken-4' },
},
data () {
return {
date: new Date().toISOString().substr(0, 10),
smsTemplates: [
{ name: ' تبریک تولد ', id: 1 },
{ name: ' تبریک سال نو ', id: 2 },
{ name: ' تبریک عید فطر ', id: 3 },
],
clientNumbers: [' 09127004945 ', ' 09300705030 '],
clientNumberValues: [' 09127004945 ', ' 09300705030 '],
scheduleState: true,
scheduleDateState: false,
scheduleTime: '12:00',
scheduleTimeState: false,
}
}
};
</script>

@ -9,10 +9,23 @@
</v-card-title> </v-card-title>
<v-card-text> <v-card-text>
<v-layout row wrap class="WM-Section" style="border-right-color: #00838F;"> <v-layout row wrap class="WM-Section" style="border-right-color: #32c5d2;">
<v-flex class="lg12 RTL text-lg-right">
<div class="Step En" style="color:#32c5d2;"> 01 </div>
<div class="Title">
<div class="FA"> اطلاعـــــات پـــایه </div>
<div class="EN"> bacis Info </div>
</div>
</v-flex>
<v-flex lg3> <v-flex lg3>
<v-card-text> <v-card-text class="hasConfig">
<v-autocomplete prepend-icon="fas fa-align-right" :items="eventTypes" color="cyan" item-text="name" label=" نوع رویداد "></v-autocomplete> <v-autocomplete prepend-icon="fas fa-align-right" :items="eventTypes" color="cyan" item-text="name" label=" نوع رویداد "></v-autocomplete>
<v-tooltip bottom color="black">
<v-btn class="XS" @click.native="$store.state.ConfigEventTypeList = true" slot="activator" outline fab color="black" dark>
<v-icon dark>fas fa-pencil-alt</v-icon>
</v-btn>
<span> ویرایش دسته ها </span>
</v-tooltip>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm4 md3> <v-flex xs12 sm4 md3>
@ -37,13 +50,22 @@
</v-card-text> </v-card-text>
</v-flex> </v-flex>
</v-layout> </v-layout>
<v-layout row wrap class="WM-Section" style="border-right-color: #32c5d2;">
<v-flex xs12 sm4 md3> <!-- -------------------------------------------------------------
<v-card-text class="WM-Padd-T-40"> Remind Me
<WM-Checkbox ItemText=" به من یادآوری کن " ItemID="RemindMe"></WM-Checkbox> ------------------------------------------------------------- -->
</v-card-text> <v-layout row wrap class="WM-Section" style="border-right-color: #0097A7;">
<v-flex xs12 sm12 md4 class="RTL text-lg-right">
<div class="Step En" style="color:#0097A7;"> 02 </div>
<div class="Title">
<div class="FA"> یادآوری به مــــــــن </div>
<div class="EN"> Self Remind </div>
</div>
<v-switch style="float:left; margin-left:10px;" @change="remindMeState = !remindMeState" color="cyan darken-2" v-model="SelfRemind"></v-switch>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> <v-flex xs12 sm12 md8 :class="[ remindMeState ? 'has-blur' : '' ]">
<v-layout row wrap>
<v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu :close-on-content-click="false" v-model="eventRemindDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px"> <v-menu :close-on-content-click="false" v-model="eventRemindDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
<v-text-field slot="activator" v-model="date" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="cyan" readonly></v-text-field> <v-text-field slot="activator" v-model="date" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="cyan" readonly></v-text-field>
@ -51,7 +73,7 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> <v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu ref="selfTimeMenu" v-model="selfTimeMenu" :close-on-content-click="false" :nudge-right="40" :return-value.sync="selfTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px"> <v-menu ref="selfTimeMenu" v-model="selfTimeMenu" :close-on-content-click="false" :nudge-right="40" :return-value.sync="selfTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px">
<template v-slot:activator="{ on }"> <template v-slot:activator="{ on }">
@ -61,20 +83,31 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm5> <v-flex xs12 sm4 md6>
<v-card-text style="padding-top:6px;"> <v-card-text style="padding-top:0px;">
<v-select v-model="selfRemindValues" :items="selfRemindItems" color="cyan" attach chips label=" روش های اطلاع رسانی " multiple></v-select> <v-select v-model="selfRemindValues" :items="selfRemindItems" color="cyan" attach chips label=" روش های اطلاع رسانی " multiple></v-select>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
</v-layout> </v-layout>
<v-layout row wrap class="WM-Section" style="border-right-color: #80DEEA;">
<v-flex xs12 sm4 md3>
<v-card-text class="WM-Padd-T-40">
<WM-Checkbox ItemText=" به مشتری یاد آوری کن " ItemID="RemindClient"></WM-Checkbox>
</v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> </v-layout>
<!-- -------------------------------------------------------------
Remind Client
------------------------------------------------------------- -->
<v-layout row wrap class="WM-Section" style="border-right-color: #006064;">
<v-flex xs12 sm4 md4 class="RTL text-lg-right">
<div class="Step En" style="color:#006064;"> 03 </div>
<div class="Title">
<div class="FA"> یادآوری به مـــــــشتری </div>
<div class="EN"> Client Remind </div>
</div>
<v-switch style="float:left; margin-left:10px;" @change="clientMeState = !clientMeState" color="cyan darken-4" v-model="ClientRemind"></v-switch>
</v-flex>
<v-flex xs12 sm12 md8 :class="[ clientMeState ? 'has-blur' : '' ]">
<v-layout row wrap>
<v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu :close-on-content-click="false" v-model="eventRemindDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px"> <v-menu :close-on-content-click="false" v-model="eventRemindDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
<v-text-field slot="activator" v-model="date2" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="cyan" readonly></v-text-field> <v-text-field slot="activator" v-model="date2" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="cyan" readonly></v-text-field>
@ -82,7 +115,7 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> <v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu ref="clientTimeMenu" v-model="clientTimeMenu" :close-on-content-click="false" :nudge-right="40" :return-value.sync="clientTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px"> <v-menu ref="clientTimeMenu" v-model="clientTimeMenu" :close-on-content-click="false" :nudge-right="40" :return-value.sync="clientTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px">
<template v-slot:activator="{ on }"> <template v-slot:activator="{ on }">
@ -92,12 +125,14 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm5> <v-flex xs12 sm4 md6>
<v-card-text style="padding-top:6px;"> <v-card-text style="padding-top:0px;">
<v-select v-model="clientRemindValues" :items="clientRemindItems" color="cyan" attach chips label=" روش های اطلاع رسانی " multiple></v-select> <v-select v-model="clientRemindValues" :items="clientRemindItems" color="cyan" attach chips label=" روش های اطلاع رسانی " multiple></v-select>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
</v-layout> </v-layout>
</v-flex>
</v-layout>
</v-card-text> </v-card-text>
<v-divider></v-divider> <v-divider></v-divider>
@ -109,13 +144,28 @@
</v-btn> </v-btn>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
</v-dialog>
<!-- --------------------------------------------------------------------
Modals :: BEGIN
-------------------------------------------------------------------- -->
<template>
<div class="text-xs-center">
<wm-event-types-edit></wm-event-types-edit>
</div>
</template>
<!-- --------------------------------------------------------------------
Modals :: END
-------------------------------------------------------------------- --> </v-dialog>
</template> </template>
<script> <script>
import TypesEdit from "@Common/components/Event/Config/Type/Modal-Layout.vue";
export default { export default {
components: {
'wm-event-types-edit' : TypesEdit,
},
props: { props: {
Color: { default: 'grey darken-4' }, Color: { default: 'grey darken-4' },
}, },
@ -139,6 +189,10 @@ export default {
clientTimeMenu: false, clientTimeMenu: false,
clientRemindItems: [' پیام کوتاه ', ' ایمیل '], clientRemindItems: [' پیام کوتاه ', ' ایمیل '],
clientRemindValues: [' پیام کوتاه ', ' ایمیل '], clientRemindValues: [' پیام کوتاه ', ' ایمیل '],
SelfRemind: false,
ClientRemind: false,
remindMeState: true,
clientMeState: true,
} }
} }

@ -1,16 +1,16 @@
<template> <template>
<v-dialog v-model="$store.state.ConfigTrasnactionTypeAdd" width="30%" transition="slide-x-transition"> <v-dialog v-model="$store.state.ConfigEventTypeAdd" width="30%" transition="slide-x-transition">
<v-card class="RTL"> <v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title> <v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" افزودن نوع تراکنش " TitleEn=" Add a Trasnaction Type " Color="black"></WM-PartTitle> <WM-PartTitle class="WM-Margin-T-20" TitleFa=" افزودن نوع رویداد " TitleEn=" Add a Event Type " Color="cyan"></WM-PartTitle>
</v-card-title> </v-card-title>
<v-card-text> <v-card-text>
<div class="row"> <div class="row">
<v-flex lg12> <v-flex lg12>
<v-card-text> <v-card-text>
<v-text-field label=" نام فارسی نوع تراکنش " color="black" prepend-icon="fas fa-tag" ></v-text-field> <v-text-field label=" نام فارسی نوع رویداد " color="cyan" prepend-icon="fas fa-tag" ></v-text-field>
<v-text-field class="LTR" label=" Transaction Type Name " color="black" prepend-icon="fas fa-sort-alpha-down" ></v-text-field> <v-text-field class="LTR" label=" Event Type Name " color="cyan" prepend-icon="fas fa-sort-alpha-down" ></v-text-field>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
@ -20,7 +20,7 @@
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="black" depressed dark @click="$store.state.ConfigTrasnactionTypeAdd = false"> <v-btn color="cyan" depressed dark @click="$store.state.ConfigEventTypeAdd = false">
<v-icon dark right>fas fa-check</v-icon> تایید اطاعلاعات <v-icon dark right>fas fa-check</v-icon> تایید اطاعلاعات
</v-btn> </v-btn>
</v-card-actions> </v-card-actions>

@ -23,7 +23,7 @@
</v-flex> </v-flex>
</v-layout> </v-layout>
</div> </div>
<v-btn @click.native="$store.state.ConfigTrasnactionTypeAdd = true" slot="activator" fab color="cyan" bottom left dark style="position:absolute; left:5px; bottom:-20px;"> <v-btn @click.native="$store.state.ConfigEventTypeAdd = true" slot="activator" fab color="cyan" bottom left dark style="position:absolute; left:5px; bottom:-20px;">
<v-icon dark>fas fa-plus</v-icon> <v-icon dark>fas fa-plus</v-icon>
</v-btn> </v-btn>
</v-flex> </v-flex>
@ -33,7 +33,7 @@
-------------------------------------------------------------------- --> -------------------------------------------------------------------- -->
<template> <template>
<div class="text-xs-center"> <div class="text-xs-center">
<wm-transaction-type-add></wm-transaction-type-add> <wm-event-type-add></wm-event-type-add>
</div> </div>
</template> </template>
<!-- -------------------------------------------------------------------- <!-- --------------------------------------------------------------------
@ -42,17 +42,17 @@
</v-container> </v-container>
</template> </template>
<script> <script>
import Add from "@Common/components/Transaction/Config/Type/Add.vue"; import Add from "@Common/components/Event/Config/Type/Add.vue";
export default { export default {
components: { components: {
"wm-transaction-type-add": Add "wm-event-type-add": Add
}, },
data() { data() {
return { return {
types: [ types: [
{ name_fa: " برنامه نویسی ", name_en: " Programming " }, { name_fa: " ویزیت دکتر ", name_en: " Visit " },
{ name_fa: " گرافیک ", name_en: " Graphic " }, { name_fa: " عدم مراجعه ی بیمار ", name_en: " Patient Absent " },
{ name_fa: " امور اپراتوری ", name_en: " Operating Matters " } { name_fa: " رزرو وقت ", name_en: " Reservation " }
] ]
}; };
} }

@ -1,8 +1,8 @@
<template> <template>
<v-dialog v-model="$store.state.ConfigTrasnactionTypeList" width="60%" transition="slide-x-transition"> <v-dialog v-model="$store.state.ConfigEventTypeList" width="60%" transition="slide-x-transition">
<v-card class="RTL"> <v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title> <v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" مدیریت انواع تراکنش " TitleEn=" Manage the transaction types " Color="black"></WM-PartTitle> <WM-PartTitle class="WM-Margin-T-20" TitleFa=" مدیریت انواع رویداد " TitleEn=" Manage the Event types " Color="cyan"></WM-PartTitle>
</v-card-title> </v-card-title>
<v-card-text> <v-card-text>
@ -12,7 +12,7 @@
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="black" depressed dark @click="$store.state.ConfigTrasnactionTypeList = false"> <v-btn color="cyan" depressed dark @click="$store.state.ConfigEventTypeList = false">
<v-icon dark right>fas fa-check</v-icon> بسیار خب <v-icon dark right>fas fa-check</v-icon> بسیار خب
</v-btn> </v-btn>
</v-card-actions> </v-card-actions>
@ -23,11 +23,10 @@
<script> <script>
// import DuplicatorView from "@User/components/Config/Department/DuplicatorView.vue"; // import DuplicatorView from "@User/components/Config/Department/DuplicatorView.vue";
import List from "@Common/components/Transaction/Config/Type/List.vue"; import List from "@Common/components/Event/Config/Type/List.vue";
export default { export default {
components: { components: {
// 'wm-duplicator-view' : DuplicatorView,
'wm-list-view' : List, 'wm-list-view' : List,
}, },
props: { props: {

@ -13,11 +13,18 @@
Task Details Task Details
------------------------------------------------------------- --> ------------------------------------------------------------- -->
<v-layout row wrap class="WM-Section" style="border-right-color: #ac3773;"> <v-layout row wrap class="WM-Section" style="border-right-color: #ac3773;">
<v-flex class="lg12 RTL text-lg-right">
<div class="Step En" style="color:#ac3773;"> 01 </div>
<div class="Title">
<div class="FA"> اطلاعـــــات پـــایه </div>
<div class="EN"> bacis Info </div>
</div>
</v-flex>
<v-flex lg3> <v-flex lg3>
<v-card-text class="hasConfig"> <v-card-text class="hasConfig">
<v-autocomplete prepend-icon="fas fa-align-right" :items="taskTypes" color="purple" item-text="name" label=" نوع وظیفه "></v-autocomplete> <v-autocomplete prepend-icon="fas fa-align-right" :items="taskTypes" color="purple" item-text="name" label=" نوع وظیفه "></v-autocomplete>
<v-tooltip bottom color="black"> <v-tooltip bottom color="black">
<v-btn class="XS" @click.native="$store.state.ConfigTrasnactionTypeList = true" slot="activator" outline fab color="black" dark> <v-btn class="XS" @click.native="$store.state.ConfigTaskTypeList = true" slot="activator" outline fab color="black" dark>
<v-icon dark>fas fa-pencil-alt</v-icon> <v-icon dark>fas fa-pencil-alt</v-icon>
</v-btn> </v-btn>
<span> ویرایش دسته ها </span> <span> ویرایش دسته ها </span>
@ -54,13 +61,18 @@
<!-- ------------------------------------------------------------- <!-- -------------------------------------------------------------
Remind Me Remind Me
------------------------------------------------------------- --> ------------------------------------------------------------- -->
<v-layout row wrap class="WM-Section" style="border-right-color: #b07593;"> <v-layout row wrap class="WM-Section" style="border-right-color: #C2185B;">
<v-flex xs12 sm4 md2> <v-flex xs12 sm12 md3 class="RTL text-lg-right">
<v-card-text class="WM-Padd-T-40"> <div class="Step En" style="color:#C2185B;"> 02 </div>
<WM-Checkbox ItemText=" یادآوری کن " ItemID="Remind"></WM-Checkbox> <div class="Title">
</v-card-text> <div class="FA"> یــــــادآوری </div>
<div class="EN"> Remind </div>
</div>
<v-switch style="float:left; margin-left:10px;" @change="remindState = !remindState" color="pink darken-2" v-model="Remind"></v-switch>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> <v-flex xs12 sm12 md9 :class="[ remindState ? 'has-blur' : '' ]">
<v-layout row wrap>
<v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu :close-on-content-click="false" v-model="taskRemindDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px"> <v-menu :close-on-content-click="false" v-model="taskRemindDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
<v-text-field slot="activator" v-model="date" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="purple" readonly></v-text-field> <v-text-field slot="activator" v-model="date" label=" در تاریخ " prepend-icon="fas fa-calendar-alt" color="purple" readonly></v-text-field>
@ -68,7 +80,7 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> <v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu ref="selfTimeMenu" v-model="taskRemindTime" :close-on-content-click="false" :nudge-right="40" :return-value.sync="taskTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px"> <v-menu ref="selfTimeMenu" v-model="taskRemindTime" :close-on-content-click="false" :nudge-right="40" :return-value.sync="taskTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px">
<template v-slot:activator="{ on }"> <template v-slot:activator="{ on }">
@ -78,12 +90,15 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm6> <v-flex xs12 sm6 md6>
<v-card-text style="padding-top:6px;"> <v-card-text style="padding-top:0px;">
<v-select v-model="taskRemindValues" :items="taskRemindMethods" color="purple" attach chips label=" روش های اطلاع رسانی " multiple></v-select> <v-select v-model="taskRemindValues" :items="taskRemindMethods" color="purple" attach chips label=" روش های اطلاع رسانی " multiple></v-select>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
</v-layout> </v-layout>
</v-flex>
</v-layout>
</v-card-text> </v-card-text>
@ -96,13 +111,28 @@
</v-btn> </v-btn>
</v-card-actions> </v-card-actions>
</v-card> </v-card>
<!-- --------------------------------------------------------------------
Modals :: BEGIN
-------------------------------------------------------------------- -->
<template>
<div class="text-xs-center">
<wm-task-types-edit></wm-task-types-edit>
</div>
</template>
<!-- --------------------------------------------------------------------
Modals :: END
-------------------------------------------------------------------- -->
</v-dialog> </v-dialog>
</template> </template>
<script> <script>
import TypesEdit from "@Common/components/Task/Config/Type/Modal-Layout.vue";
export default { export default {
components: {
'wm-task-types-edit' : TypesEdit,
},
props: { props: {
Color: { default: 'grey darken-4' }, Color: { default: 'grey darken-4' },
}, },
@ -127,6 +157,7 @@ export default {
taskRemindTime: false, taskRemindTime: false,
taskRemindMethods: [' پیام کوتاه ', ' ایمیل '], taskRemindMethods: [' پیام کوتاه ', ' ایمیل '],
taskRemindValues: [' پیام کوتاه ', ' ایمیل '], taskRemindValues: [' پیام کوتاه ', ' ایمیل '],
remindState: true,
} }
} }

@ -1,16 +1,16 @@
<template> <template>
<v-dialog v-model="$store.state.ConfigTrasnactionTypeAdd" width="30%" transition="slide-x-transition"> <v-dialog v-model="$store.state.ConfigTaskTypeAdd" width="30%" transition="slide-x-transition">
<v-card class="RTL"> <v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title> <v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" افزودن نوع تراکنش " TitleEn=" Add a Trasnaction Type " Color="black"></WM-PartTitle> <WM-PartTitle class="WM-Margin-T-20" TitleFa=" افزودن نوع وظیفه " TitleEn=" Add a Task Type " Color="purple"></WM-PartTitle>
</v-card-title> </v-card-title>
<v-card-text> <v-card-text>
<div class="row"> <div class="row">
<v-flex lg12> <v-flex lg12>
<v-card-text> <v-card-text>
<v-text-field label=" نام فارسی نوع تراکنش " color="black" prepend-icon="fas fa-tag" ></v-text-field> <v-text-field label=" نام فارسی نوع وظیفه " color="purple" prepend-icon="fas fa-tag" ></v-text-field>
<v-text-field class="LTR" label=" Transaction Type Name " color="black" prepend-icon="fas fa-sort-alpha-down" ></v-text-field> <v-text-field class="LTR" label=" Task Type Name " color="purple" prepend-icon="fas fa-sort-alpha-down" ></v-text-field>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
@ -20,7 +20,7 @@
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="black" depressed dark @click="$store.state.ConfigTrasnactionTypeAdd = false"> <v-btn color="purple" depressed dark @click="$store.state.ConfigTaskTypeAdd = false">
<v-icon dark right>fas fa-check</v-icon> تایید اطاعلاعات <v-icon dark right>fas fa-check</v-icon> تایید اطاعلاعات
</v-btn> </v-btn>
</v-card-actions> </v-card-actions>

@ -23,7 +23,7 @@
</v-flex> </v-flex>
</v-layout> </v-layout>
</div> </div>
<v-btn @click.native="$store.state.ConfigTrasnactionTypeAdd = true" slot="activator" fab color="cyan" bottom left dark style="position:absolute; left:5px; bottom:-20px;"> <v-btn @click.native="$store.state.ConfigTaskTypeAdd = true" slot="activator" fab color="cyan" bottom left dark style="position:absolute; left:5px; bottom:-20px;">
<v-icon dark>fas fa-plus</v-icon> <v-icon dark>fas fa-plus</v-icon>
</v-btn> </v-btn>
</v-flex> </v-flex>
@ -33,7 +33,7 @@
-------------------------------------------------------------------- --> -------------------------------------------------------------------- -->
<template> <template>
<div class="text-xs-center"> <div class="text-xs-center">
<wm-transaction-type-add></wm-transaction-type-add> <wm-task-type-add></wm-task-type-add>
</div> </div>
</template> </template>
<!-- -------------------------------------------------------------------- <!-- --------------------------------------------------------------------
@ -42,17 +42,17 @@
</v-container> </v-container>
</template> </template>
<script> <script>
import Add from "@Common/components/Transaction/Config/Type/Add.vue"; import Add from "@Common/components/Task/Config/Type/Add.vue";
export default { export default {
components: { components: {
"wm-transaction-type-add": Add "wm-task-type-add": Add
}, },
data() { data() {
return { return {
types: [ types: [
{ name_fa: " برنامه نویسی ", name_en: " Programming " }, { name_fa: " ویزیت بیمار ", name_en: " Visit " },
{ name_fa: " گرافیک ", name_en: " Graphic " }, { name_fa: " ورزش درمانی ", name_en: " Sport therapy " },
{ name_fa: " امور اپراتوری ", name_en: " Operating Matters " } { name_fa: " نوشتن نسخه ", name_en: " Writing a script " }
] ]
}; };
} }

@ -1,8 +1,8 @@
<template> <template>
<v-dialog v-model="$store.state.ConfigTrasnactionTypeList" width="60%" transition="slide-x-transition"> <v-dialog v-model="$store.state.ConfigTaskTypeList" width="60%" transition="slide-x-transition">
<v-card class="RTL"> <v-card class="RTL">
<v-card-title class=" grey lighten-3" primary-title> <v-card-title class=" grey lighten-3" primary-title>
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" مدیریت انواع تراکنش " TitleEn=" Manage the transaction types " Color="black"></WM-PartTitle> <WM-PartTitle class="WM-Margin-T-20" TitleFa=" مدیریت انواع وظیفه " TitleEn=" Manage the Task types " Color="purple"></WM-PartTitle>
</v-card-title> </v-card-title>
<v-card-text> <v-card-text>
@ -12,7 +12,7 @@
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-btn color="black" depressed dark @click="$store.state.ConfigTrasnactionTypeList = false"> <v-btn color="purple" depressed dark @click="$store.state.ConfigTaskTypeList = false">
<v-icon dark right>fas fa-check</v-icon> بسیار خب <v-icon dark right>fas fa-check</v-icon> بسیار خب
</v-btn> </v-btn>
</v-card-actions> </v-card-actions>
@ -23,7 +23,7 @@
<script> <script>
// import DuplicatorView from "@User/components/Config/Department/DuplicatorView.vue"; // import DuplicatorView from "@User/components/Config/Department/DuplicatorView.vue";
import List from "@Common/components/Transaction/Config/Type/List.vue"; import List from "@Common/components/Task/Config/Type/List.vue";
export default { export default {
components: { components: {

@ -10,9 +10,15 @@
</v-flex> </v-flex>
<v-flex lg2 class="text-lg-center"> <v-flex lg2 class="text-lg-center">
<div class="caption grey--text"> مشتری مورد نظر </div> <div class="caption grey--text"> مشتری مورد نظر </div>
<span class="black--text"> <span class="black--text WM-Pointer" @click="$store.state.ClientDetails = true" slot="activator">
{{ props.item.taskable_name }} {{ props.item.taskable_name }}
</span> </span>
<v-tooltip top color="black">
<v-btn class="XS" small @click.native="$store.state.SendSMS = true" slot="activator" fab color="orange" dark>
<v-icon dark>fas fa-comment-alt</v-icon>
</v-btn>
<span> ارسال پیام کوتاه </span>
</v-tooltip>
</v-flex> </v-flex>
<v-flex lg4 class="text-lg-right Persons grey lighten-4"> <v-flex lg4 class="text-lg-right Persons grey lighten-4">
<div> <div>
@ -39,7 +45,7 @@
<span> 4 </span> <span> 4 </span>
</template> </template>
<v-tooltip top color="black"> <v-tooltip top color="black">
<v-btn small @click.native="$store.state.ClientComments = true" slot="activator" fab color="black" dark><v-icon dark>fas fa-comments</v-icon></v-btn> <v-btn small @click.native="$store.state.Comments = true" slot="activator" fab color="black" dark><v-icon dark>fas fa-comments</v-icon></v-btn>
<span> کامنت ها </span> <span> کامنت ها </span>
</v-tooltip> </v-tooltip>
</v-badge> </v-badge>
@ -78,9 +84,9 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.Task .Persons { .Task .Persons {
display: flex; display: flex;
border-right: 2px solid #E0E0E0 !important; border: 2px solid #E0E0E0 !important;
padding: 5px 15px; padding: 5px 15px;
justify-content: right; justify-content: center;
border-bottom-left-radius: 10px; border-bottom-left-radius: 10px;
border-top-left-radius: 10px; border-top-left-radius: 10px;

@ -10,6 +10,13 @@
<v-card-text> <v-card-text>
<v-layout row wrap class="WM-Section" style="border-right-color: #000;"> <v-layout row wrap class="WM-Section" style="border-right-color: #000;">
<v-flex class="lg12 RTL text-lg-right">
<div class="Step En" style="color:#000;"> 01 </div>
<div class="Title">
<div class="FA"> اطلاعـــــات پـــایه </div>
<div class="EN"> bacis Info </div>
</div>
</v-flex>
<v-flex lg3> <v-flex lg3>
<v-card-text class="hasConfig"> <v-card-text class="hasConfig">
<v-autocomplete prepend-icon="fas fa-align-right" :items="transactionTypes" color="black" item-text="name" label=" عنوان تراکنش "></v-autocomplete> <v-autocomplete prepend-icon="fas fa-align-right" :items="transactionTypes" color="black" item-text="name" label=" عنوان تراکنش "></v-autocomplete>
@ -41,7 +48,14 @@
</v-flex> </v-flex>
</v-layout> </v-layout>
<v-layout row wrap class="WM-Section" style="border-right-color: #BDBDBD;"> <v-layout row wrap class="WM-Section" style="border-right-color: #BDBDBD;">
<v-flex xs12 sm4 md2> <v-flex class="lg4 RTL text-lg-right">
<div class="Step En" style="color:#BDBDBD;"> 02 </div>
<div class="Title">
<div class="FA"> اطلاعـــــــــات تــــــــکمیلی </div>
<div class="EN"> Additional Info </div>
</div>
</v-flex>
<v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu :close-on-content-click="false" v-model="transactionDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px"> <v-menu :close-on-content-click="false" v-model="transactionDate" :nudge-right="40" lazy transition="slide-y-transition" offset-y full-width min-width="290px">
<v-text-field slot="activator" v-model="date" label=" تاریخ انجام تراکنش " prepend-icon="fas fa-calendar-alt" color="black" readonly></v-text-field> <v-text-field slot="activator" v-model="date" label=" تاریخ انجام تراکنش " prepend-icon="fas fa-calendar-alt" color="black" readonly></v-text-field>
@ -49,7 +63,7 @@
</v-menu> </v-menu>
</v-card-text> </v-card-text>
</v-flex> </v-flex>
<v-flex xs12 sm4 md2> <v-flex xs12 sm4 md3>
<v-card-text> <v-card-text>
<v-menu ref="clientTimeMenu" v-model="transactionTimeMenu" :close-on-content-click="false" :nudge-right="40" :return-value.sync="transactionTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px"> <v-menu ref="clientTimeMenu" v-model="transactionTimeMenu" :close-on-content-click="false" :nudge-right="40" :return-value.sync="transactionTime" lazy transition="slide-y-transition" offset-y full-width max-width="290px" min-width="290px">
<template v-slot:activator="{ on }"> <template v-slot:activator="{ on }">
@ -63,8 +77,18 @@
<v-textarea name="input-7-1" label=" توضیحات تراکنش " value="" hint="حداکثر 2500 کاراکتر " color="black" prepend-icon="fas fa-quote-right"></v-textarea> <v-textarea name="input-7-1" label=" توضیحات تراکنش " value="" hint="حداکثر 2500 کاراکتر " color="black" prepend-icon="fas fa-quote-right"></v-textarea>
</v-flex> </v-flex>
</v-layout> </v-layout>
<v-layout row wrap class="WM-Section" style="border-right-color: #E0E0E0; position:relative; padding: 0px 15px;">
<v-flex md12 class="text-lg-right" mt-2> اگر مایل هستید، آیتم های دریافت شده توسط مشتری به ازای مبلغ پرداخت شده را، لیست کنید </v-flex>
<v-layout row wrap class="WM-Section" style="border-right-color: #E0E0E0; position:relative;">
<v-flex class="lg12 RTL text-lg-right">
<div class="Step En" style="color:#BDBDBD;"> 03 </div>
<div class="Title">
<div class="FA"> آیــــتم های پـــــرداخت </div>
<div class="EN"> Payment Items </div>
</div>
</v-flex>
<!-- <v-flex md12 class="text-lg-right" mt-2> اگر مایل هستید، آیتم های دریافت شده توسط مشتری به ازای مبلغ پرداخت شده را، لیست کنید </v-flex> -->
<v-card-text class="Duplicate"> <v-card-text class="Duplicate">
<v-layout row wrap pl-2> <v-layout row wrap pl-2>
<v-flex lg3> <v-flex lg3>
@ -79,8 +103,8 @@
<v-flex lg5> <v-flex lg5>
<v-text-field label=" توضیحات " color="cyan" prepend-icon="fas fa-quote-right"></v-text-field> <v-text-field label=" توضیحات " color="cyan" prepend-icon="fas fa-quote-right"></v-text-field>
</v-flex> </v-flex>
<v-btn fab color="cyan" fixed bottom left dark style="left:15px; bottom:-25px; position:absolute"><v-icon dark>fas fa-plus</v-icon></v-btn> <v-btn fab color="cyan" fixed bottom left dark style="left:-3px; bottom:-30px; position:absolute"><v-icon dark>fas fa-plus</v-icon></v-btn>
<v-btn fab small color="red" fixed bottom left dark style="left:-5px; top:-20px; position:absolute"><v-icon dark>fas fa-times</v-icon></v-btn> <v-btn fab small class="XS" color="red" fixed bottom left dark style="left:-18px; top:-22px; position:absolute"><v-icon dark>fas fa-times</v-icon></v-btn>
</v-layout> </v-layout>
</v-card-text> </v-card-text>

@ -1,7 +1,16 @@
export default [ export default [
// {
// path: '/Login',
// name: 'Login',
// view: 'auth/Login'
// },
{ {
path: '/Login', path: '/CRM/MyTasks',
name: 'Login', name: 'MyTasks',
view: 'auth/Login' view: 'Tasks'
} }, {
path: '/CRM/MyRequests',
name: 'MyRequests',
view: 'Tasks'
},
]; ];

@ -0,0 +1,102 @@
<template>
<v-container fluid>
<div class="Tile Shadowed Padd-0 WM-Margin-B-10" >
<wm-breadcrumbs LinkClass="WM-Link-Cyan" :items="breadcrumbItems"></wm-breadcrumbs>
</div>
<div class="Tile Shadowed">
<WM-PartTitle class="WM-Margin-T-20" TitleFa=" مشتریان من " TitleEn=" My Clients " Color="red"></WM-PartTitle>
<wm-client-filter></wm-client-filter>
<wm-client-items></wm-client-items>
<router-link to="AddClient">
<v-btn large fab color="cyan" fixed bottom left dark style="left:5%"><v-icon dark>fas fa-plus</v-icon></v-btn>
</router-link>
</div>
<!-- --------------------------------------------------------------------
Modals :: BEGIN
-------------------------------------------------------------------- -->
<template>
<div class="text-xs-center">
<wm-client-details></wm-client-details>
<wm-client-status></wm-client-status>
<wm-send-email></wm-send-email>
<wm-send-sms></wm-send-sms>
<wm-task-add></wm-task-add>
<wm-task-timeline></wm-task-timeline>
<wm-event-add></wm-event-add>
<wm-event-timeline></wm-event-timeline>
<wm-transaction-add></wm-transaction-add>
<wm-transaction-timeline></wm-transaction-timeline>
<wm-comments-timeline></wm-comments-timeline>
</div>
</template>
<!-- --------------------------------------------------------------------
Modals :: END
-------------------------------------------------------------------- -->
</v-container>
</template>
<script>
import ClientItems from '@CRM/components/Clients/Items';
import ClientFilters from '@CRM/components/Clients/Filters';
import ClientDetails from "@CRM/components/Clients/Details.vue";
import ClientStatus from "@CRM/components/Clients/Status.vue";
import SendEmailModal from "@Common/components/Contact/Email/Send.vue";
import SendSMSModal from "@Common/components/Contact/SMS/Send.vue";
import TaskAdd from "@Common/components/Task/Add.vue";
import TaskTimeline from "@Common/components/Task/Timeline/Modal-Layout.vue";
import TaskTimelineItem from "@Common/components/Task/Timeline/Item.vue";
import EventAdd from "@Common/components/Event/Add.vue";
import EventTimeline from "@Common/components/Event/Timeline/Modal-Layout.vue";
import EventTimelineItem from "@Common/components/Event/Timeline/Item.vue";
import TransactionAdd from "@Common/components/Transaction/Add.vue";
import TransactionTimeline from "@Common/components/Transaction/Timeline/Modal-Layout.vue";
import CommentsTimeline from "@Common/components/Comment/Modal-Layout.vue";
export default {
components: {
'wm-client-items' : ClientItems,
'wm-client-filter' : ClientFilters,
'wm-client-details' : ClientDetails,
'wm-client-status' : ClientStatus,
'wm-send-email' : SendEmailModal,
'wm-send-sms' : SendSMSModal,
'wm-task-add' : TaskAdd,
'wm-task-timeline' : TaskTimeline,
'wm-event-add' : EventAdd,
'wm-event-timeline' : EventTimeline,
'wm-transaction-add' : TransactionAdd,
'wm-transaction-timeline' : TransactionTimeline,
'wm-comments-timeline' : CommentsTimeline,
},
data: function () {
return {
breadcrumbItems: [
{
text: '',
disabled: false,
href: 'Home',
icon: 'home'
},
{
text: ' مشتریان من ',
disabled: true,
href: 'Clients'
},
]
}
}
};
</script>
<style scoped lang="scss">
</style>

@ -1,6 +1,6 @@
<template> <template>
<!-- <v-flex :class="TileSize" > --> <!-- <v-flex :class="TileSize" > -->
<div class="WM-Tile Shadowed" :class="TileClass"> <div class="WM-ImageTile Shadowed" :class="TileClass">
<div class="CoverBG WM-Block WM-Align-C Relative" :style="'background-image: linear-gradient('+GradientDirection+', #'+GradientBegin+' , #'+GradientEnd+'); height: '+TileHeight+';'"> <div class="CoverBG WM-Block WM-Align-C Relative" :style="'background-image: linear-gradient('+GradientDirection+', #'+GradientBegin+' , #'+GradientEnd+'); height: '+TileHeight+';'">
<div class="Content"> <div class="Content">
<div class="Info"> <div class="Info">
@ -60,28 +60,28 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.WM-Tile { .WM-ImageTile {
width:100%; width:100%;
} }
.WM-Tile.Shadowed { .WM-ImageTile.Shadowed {
box-shadow: 0 10px 30px 0 rgba(0,0,0,.5); box-shadow: 0 10px 30px 0 rgba(0,0,0,.5);
border-radius:5px; border-radius:5px;
} }
.WM-Tile .TitleFa { .WM-ImageTile .TitleFa {
font-size:30px; font-size:30px;
color: #000; color: #000;
} }
.WM-Tile .TitleEn { .WM-ImageTile .TitleEn {
font-size:14px; font-size:14px;
color: #000; color: #000;
letter-spacing:15px; letter-spacing:15px;
text-transform:uppercase; text-transform:uppercase;
} }
.WM-Tile.Padd10{ .WM-ImageTile.Padd10{
padding:10px; padding:10px;
} }
.WM-Tile.Padd20{ .WM-ImageTile.Padd20{
padding:20px; padding:20px;
} }
.Content { .Content {

@ -38,6 +38,9 @@
border-radius: 5px; border-radius: 5px;
margin: 3px 0px 10px 0px; margin: 3px 0px 10px 0px;
} }
.Context {
font-family: BYekan-Edited, Montserrat-Regular !important;
}
.WM-SubText.SmallPad { .WM-SubText.SmallPad {
padding: 3px 15px 0px 15px; padding: 3px 15px 0px 15px;
@ -83,6 +86,10 @@
.zIndex99 { .zIndex99 {
z-index: 99; z-index: 99;
} }
.has-blur {
-webkit-filter: blur(5px);
transition: 0.5s -webkit-filter linear;
}
/* -------------------------------------------------------- /* --------------------------------------------------------
Navigation :: Begin Navigation :: Begin
@ -144,6 +151,7 @@
margin: 10px 0px; margin: 10px 0px;
border: 1px solid #eeeeee; border: 1px solid #eeeeee;
border-right: 2px solid #000; border-right: 2px solid #000;
margin-bottom: 30px;
} }
.WM-Section .Step { .WM-Section .Step {
@ -170,6 +178,7 @@
.Duplicate { .Duplicate {
border: 1px solid #ddd; border: 1px solid #ddd;
position: relative;
} }
@ -183,3 +192,8 @@
margin-top: 20px; margin-top: 20px;
margin-right: 5px; margin-right: 5px;
} }
.WM-Pointer {
cursor: pointer;
}

@ -175,6 +175,21 @@ table.v-table tbody td {
right: auto !important; right: auto !important;
} }
.v-card__text {
padding: 6px 16px;
}
.v-timeline--dense.RTL:before {
right: 18px;
left: inherit;
}
.v-timeline--dense.RTL .v-timeline-item__dot--small {
right: 7px;
left: inherit;
}
@each $Color, @each $Color,
$Value in $colors { $Value in $colors {
.#{$Color} { .#{$Color} {

@ -1,8 +1,8 @@
import sharedPath from './path'; import sharedPath from './path';
let paths = []; // let paths = [];
paths = paths.concat(sharedPath); // paths = paths.concat(sharedPath);
export default paths; export default sharedPath;

@ -1,12 +1,7 @@
export default [ export default [
{ {
path: '/CRM/Login', path: '/CRM/MyTasks',
name: 'testlogin', name: 'MyTasks',
view: 'Modules/Module/views/Home' view: 'Common/views/Tasks'
}, }
// {
// path: '/User/List',
// name: 'UserList',
// view: 'Authentication/views/Users'
// },
]; ];

@ -46,8 +46,8 @@ import TaskAdd from "@Common/components/Task/Add.vue";
import TaskTimeline from "@Common/components/Task/Timeline/Modal-Layout.vue"; import TaskTimeline from "@Common/components/Task/Timeline/Modal-Layout.vue";
import TaskTimelineItem from "@Common/components/Task/Timeline/Item.vue"; import TaskTimelineItem from "@Common/components/Task/Timeline/Item.vue";
import SendEmailModal from "@Common/components/Contact/Modal-SendEmail.vue"; import SendEmailModal from "@Common/components/Contact/Email/Send.vue";
import SendSMSModal from "@Common/components/Contact/Modal-SendSMS.vue"; import SendSMSModal from "@Common/components/Contact/SMS/Send.vue";
export default { export default {
components: { components: {

@ -125,5 +125,5 @@
{{-- <script type="text/javascript" src="{{ asset('js/vendors.js') }}"></script> {{-- <script type="text/javascript" src="{{ asset('js/vendors.js') }}"></script>
<script type="text/javascript" src="{{ asset('js/scripts.js') }}"></script> --}} <script type="text/javascript" src="{{ asset('js/scripts.js') }}"></script> --}}
<script src="{{ asset('Authentication/js/app.js') }}"></script> <script src="{{ mix('js/vue/Authentication/app.js') }}"></script>
</html> </html>

@ -13,5 +13,5 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
</body> </body>
<script src="{{ asset('Home/js/app.js') }}"></script> <script src="{{ mix('js/vue/Home/app.js') }}"></script>
</html> </html>

@ -13,5 +13,5 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
</body> </body>
<script src="{{ asset('User/js/app.js') }}"></script> <script src="{{ mix('js/vue/User/app.js') }}"></script>
</html> </html>

@ -14,5 +14,5 @@
<div id="app"> <div id="app">
</div> </div>
</body> </body>
<script src="{{ asset('Modules/Website/js/app.js') }}"></script> <script src="{{ mix('js/vue/Modules/Website/app.js') }}"></script>
</html> </html>

10
webpack.mix.js vendored

@ -22,16 +22,20 @@ mix.webpackConfig({
'@Common': path.resolve(__dirname, 'resources/js/Common'), '@Common': path.resolve(__dirname, 'resources/js/Common'),
}, },
}, },
output: {
chunkFilename: 'js/vue/chunks/[name].[chunkhash].js',
},
}); });
// mix.js('resources/js/Modules/Website/app.js', 'public/Modules/Website/js') // mix.js('resources/js/Modules/Website/app.js', 'public/Modules/Website/js')
// .js('resources/js/Home/app.js', 'public/Home/js'); // .js('resources/js/Home/app.js', 'public/Home/js');
// .js('resources/js/Authentication/app.js', 'public/Authentication/js'); // .js('resources/js/Authentication/app.js', 'public/Authentication/js');
mix.js('resources/js/Authentication/app.js', 'public/Authentication/js') mix.js('resources/js/Authentication/app.js', 'public/js/vue/Authentication')
.js('resources/js/Home/app.js', 'public/Home/js') .js('resources/js/Home/app.js', 'public/js/vue/Home')
.js('resources/js/User/app.js', 'public/User/js'); .js('resources/js/User/app.js', 'public/js/vue/User');
require('./modules/wm-crm/webpack.mix'); require('./modules/wm-crm/webpack.mix');
// require('./modules/wm-store/webpack.mix'); // require('./modules/wm-store/webpack.mix');
mix.version();
Loading…
Cancel
Save