You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Unit.cshtml 23 KiB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. 
  2. @{
  3. ViewBag.Title = "Unit";
  4. Layout = "~/Views/Shared/_Index.cshtml";
  5. }
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  9. <meta name="renderer" content="webkit">
  10. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  11. <meta name="format-detection" content="telephone=no" />
  12. <link rel="shortcut icon" href="" />
  13. <title>数字化校园-宿舍</title>
  14. <meta name="keywords" content="数字化校园-宿舍" />
  15. <meta name="description" content="数字化校园-宿舍" />
  16. <link href="~/Content/font/css/font-awesome.css" rel="stylesheet" />
  17. <link href="~/Content/css/swiper.min.css" rel="stylesheet" />
  18. <link href="~/Content/css/common.css" rel="stylesheet" />
  19. <link href="~/Content/css/index.css" rel="stylesheet" />
  20. <!--自适应-->
  21. <script src="~/Content/jquery/plugin/layer/layer.js"></script>
  22. <script src="~/Content/echarts/echarts.js"></script>
  23. <script src="~/Content/news/js/easing.js"></script>
  24. <script src="~/Content/jquery/plugin/jquery-ui/jquery-ui.min.js"></script>
  25. <!--自适应-->
  26. <script src="~/Content/js/dormitory/main.js"></script>
  27. <!--[if lte IE 9]>
  28. <script src="js/respond.min.js"></script>
  29. <script src="js/html5shiv.js"></script>
  30. <![endif]-->
  31. <style>
  32. html, body {
  33. background-image: url('/Content/images/floor/bg2.jpg');
  34. filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='/Content/images/floor/bg2.jpg', sizingMethod='scale');
  35. overflow: auto;
  36. }
  37. .layerImg {
  38. top: 0px;
  39. left: 0px;
  40. width: 225px
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <!-- / warpper -->
  46. <div id="app" class="index_warpper unit_warpper">
  47. <!-- / index_sec1 -->
  48. <div class="index_sec index_sec1">
  49. <div class="index_box">
  50. <div class="indSec1T">
  51. @*山西省小店区高新校区*@ <a href="/LogisticsManagement/Accommodation/Floor">{{dormitoryName}}</a>
  52. <ul class="indSec1List">
  53. @*<li><a href="#"><img src="/Content/images/floor/inSec1-5.png" alt="" />多条件查找宿舍楼</a></li>
  54. <li><a href="#"><img src="/Content/images/floor/inSec1-6.png" alt="" />自动分配宿舍</a></li>*@
  55. <li><a href="#" @@click="addFloor()"><img src="/Content/images/floor/inSec1-7.png" alt="" />添加单元</a></li>
  56. @*<li><a href="#"><img src="/Content/images/floor/inSec1-8.png" alt="" />批量删除</a></li>
  57. <li><a href="#"><img src="/Content/images/floor/inSec1-9.png" alt="" />打印宿舍数据</a></li>*@
  58. </ul>
  59. </div>
  60. <div class="inSec1Row">
  61. <div v-for="floor in floors" class="inSec1Col3">
  62. <div class="inSec1Box">
  63. <div class="inSec1Top">
  64. <span>{{floor.dormitory.Name}}</span>
  65. <ul class="inSec1TopList">
  66. <li>
  67. <a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>
  68. <div class="inSec1Con inSec1Con1">
  69. <img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />
  70. <div class="inSec1Con2">
  71. <div class="inSec1ConT">{{floor.dormitory.Name}} <div class="inSec1Sex" :style="floor.dormitory.Sex | filter_style"><img :src="floor.dormitory.Sex | filter_sexImg" alt="" />{{floor.dormitory.Sex | filter_sex}}</div></div>
  72. <div class="inSec1ConTxt">
  73. <span>{{floor.floorNum}}</span>层 <span>{{floor.RoomNum}}</span>间 <span>{{floor.BedNum}}</span>床
  74. </div>
  75. <div class="inSec1ConTxt">
  76. 入住 <span>{{floor.HasStudentNum}}</span>人 &nbsp;&nbsp;&nbsp;&nbsp; 空闲<span>{{floor.NoStudentNum}}</span>床位
  77. </div>
  78. <div @@click="checkDetail(floor)" class="inSec1Btn">查看更多信息 <i class="fa fa-angle-right"></i></div>
  79. </div>
  80. </div>
  81. </li>
  82. <li><a @@click="update(floor.dormitory.ID)" href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>
  83. <li><a @@click="deleteFloor(floor)" href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>
  84. </ul>
  85. <div class="clear"></div>
  86. </div>
  87. <div class="inSec1Img">
  88. <a :href="floor.dormitory.ID | filter_url"><img src="/Content/images/floor/unit1-1.png" alt="" /></a>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <!-- / index_sec1 -->
  96. </div>
  97. <!-- / warpper -->
  98. <script>
  99. //var data = {
  100. // "rows": [
  101. // {
  102. // "ID": "289fb13a-8e91-4c5d-bd6b-7b7de344dc17",
  103. // "Name": "1单元",
  104. // "Functionary": '负责人',
  105. // "Leader": '舍长',
  106. // "BuildType": "宿舍楼-类型",
  107. // "CreateBy": '创建人',
  108. // "CreateTime": '创建时间',
  109. // "UpdateBy": '更新人',
  110. // "UpdateTime": '更新时间',
  111. // "Price": '价格',
  112. // "Remark": '备注说明',
  113. // "Phone": '负责人电话',
  114. // "Address": '地址',
  115. // "Campus": '校区',
  116. // "Dept": '系',
  117. // "Major": '专业',
  118. // "Class": '班级',
  119. // "Sex": "0",//性别
  120. // "StudentID": '学生id',
  121. // "ParentID": "父ID",
  122. // "StuName": 'null'
  123. // },
  124. // {
  125. // "ID": "289fb13a-8e91-4c5d-bd6b-7b7de344dc17",
  126. // "Name": "22单元",
  127. // "Functionary": '张丽梅',
  128. // "Leader": '舍长',
  129. // "BuildType": "宿舍楼-类型",
  130. // "CreateBy": '薛礼根',
  131. // "CreateTime": '2019-05-14',
  132. // "UpdateBy": '薛礼根',
  133. // "UpdateTime": '2019-05-14',
  134. // "Price": '800~1200',
  135. // "Remark": '备注说明',
  136. // "Phone": '15735806069',
  137. // "Address": '山西省小店区南中环街高新区23号',
  138. // "Campus": '山西省小店区高新校区',
  139. // "Dept": '数学系',
  140. // "Major": '数学与应用数学',
  141. // "Class": '班级',
  142. // "Sex": "0",//性别
  143. // "StudentID": '学生id',
  144. // "ParentID": "父ID",
  145. // "StuName": 'null'
  146. // }
  147. // ],
  148. // "total": 1,
  149. // "page": 1,
  150. // "records": 10
  151. //}
  152. //var html = '';
  153. //$.each(data.rows, function (i, n) {
  154. // var floor = floorName(n.Name, 2);
  155. // html += '<div class="inSec1Col3">' +
  156. // '<div class="inSec1Box">' +
  157. // '<div class="inSec1Top">' +
  158. // '<span><span>' + floor + '</span> 单元</span>' +
  159. // '<ul class="inSec1TopList">' +
  160. // '<li>' +
  161. // '<a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>' +
  162. // '<div class="inSec1Con inSec1Con1">' +
  163. // '<img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />' +
  164. // '<div class="inSec1Con2">' +
  165. // '<div class="inSec1ConT"><span>' + floor + '</span>单元 <div class="inSec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>' +
  166. // '<div class="inSec1ConTxt">' +
  167. // '<span>6</span>层 <span>120</span>间 <span>480</span>床' +
  168. // '</div>' +
  169. // '<div class="inSec1ConTxt">' +
  170. // '入住 <span>1210</span>人 &nbsp;&nbsp;&nbsp;&nbsp; 空闲<span>1920</span>床位' +
  171. // '</div>' +
  172. // '<div class="inSec1Btn" index="' + i + '">查看更多信息 <i class="fa fa-angle-right"></i></div>' +
  173. // '</div>' +
  174. // '</div>' +
  175. // '</li>' +
  176. // '<li><a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>' +
  177. // '<li><a href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>' +
  178. // '</ul>' +
  179. // '<div class="clear"></div>' +
  180. // '</div>' +
  181. // '<div class="inSec1Img">' +
  182. // '<a href="corridor"><img src="/Content/images/floor/unit1-1.png" alt="" /></a>' +
  183. // '</div></div></div>';
  184. //})
  185. //$('.inSec1Row').html(html).on('click', '.inSec1Btn', function () {
  186. // var ind = $(this).attr('index');
  187. // var datas = data.rows[ind];
  188. // var floor = floorName(datas.Name, 2);
  189. // layer.open({
  190. // type: 1,
  191. // closeBtn: 2,
  192. // area: ['888px', '80%'],
  193. // content: '<div class="layerBox unitLayer">' +
  194. // '<div class="layer_sec1 layer_sec">' +
  195. // '<div class="laySec1L">' +
  196. // '<div class="laySec1ConTitle"><span>1</span>号楼</div>' +
  197. // '<div class="laySec1ConT"><span>' + floor + '</span>单元' +
  198. // '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>' +
  199. // '</div>' +
  200. // '<div class="laySec1R">' +
  201. // '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + datas.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + datas.Phone + '</div></div>' +
  202. // '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + datas.Campus + '</div>' +
  203. // '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + datas.Address + '</div>' +
  204. // '</div>' +
  205. // '</div>' +
  206. // '<div class="layer_sec layer_sec2">' +
  207. // '<ul class="laySec2List">' +
  208. // '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>001</li>' +
  209. // '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + datas.Price + ' <i>元</i></li>' +
  210. // '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>6 <i>个</i></li>' +
  211. // '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>1210 <i>人</i></li>' +
  212. // '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>480 <i>间</i></li>' +
  213. // '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>710 <i>床</i></li>' +
  214. // '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>1920 <i>个</i></li>' +
  215. // '<li><span>涉及院系</span>' + datas.Dept + '</li>' +
  216. // '<li><span>涉及专业</span>' + datas.Major + '</li>' +
  217. // '</ul>' +
  218. // '<div class="laySec2Btn">' +
  219. // '<a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  220. // '<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  221. // '<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  222. // '</div>' +
  223. // '</div>' +
  224. // '<div class="layer_sec layer_sec2 layer_sec4">' +
  225. // '<ul class="laySec2List">' +
  226. // '<li><span>创 建 人 </span>' + datas.CreateBy + '</li>' +
  227. // '<li><span>创建时间 </span>' + datas.CreateTime + '</li>' +
  228. // '<li><span>更 新 人</span>' + datas.UpdateBy + ' </li>' +
  229. // '<li><span>更新时间</span>' + datas.UpdateTime + ' </li>' +
  230. // '</ul>' +
  231. // '</div>' +
  232. // '<img class="layerImg" src="/Content/images/floor/unit1-2.png" alt="" />' +
  233. // '</div>'
  234. // })
  235. //})
  236. var parentID='@ViewBag.ParentID';
  237. var vm = new Vue({
  238. el: "#app",
  239. data: {
  240. floors: "",
  241. sexImgUrl: "/Content/images/floor/inSec1-10.png",
  242. dormitoryName: "",
  243. dormitoryID:""
  244. },
  245. methods: {
  246. getData: function () {
  247. $.get('/LogisticsManagement/Accommodation/GetUnitList?ParentID=' + parentID, function (ref) {
  248. if (ref.data) {
  249. this.floors = ref.data.rows;
  250. this.dormitoryName = ref.data.DormitoryName;
  251. this.dormitoryID = ref.data.DormitoryID;
  252. }
  253. }.bind(this), "json");
  254. },
  255. laterGetData: function () {
  256. setTimeout(function () {
  257. this.getData();
  258. }.bind(this), 1000);
  259. },
  260. filter_Dept: function (value) {
  261. var result;
  262. top.learun.clientdata.getAsync('custmerData', {
  263. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
  264. key: value,
  265. keyId: 'deptno',
  266. callback: function (_data) {
  267. result = _data.deptname;
  268. }
  269. });
  270. return result;
  271. },
  272. filter_Major: function (value) {
  273. var result;
  274. top.learun.clientdata.getAsync('custmerData', {
  275. sync: true,
  276. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
  277. key: value,
  278. keyId: 'id',
  279. callback: function (_data) {
  280. result = _data.majorname;
  281. }
  282. });
  283. return result;
  284. },
  285. filter_company: function (value) {
  286. var result;
  287. top.learun.clientdata.getAsync('custmerData', {
  288. sync: true,
  289. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
  290. key: value,
  291. keyId: 'f_companyid',
  292. callback: function (_data) {
  293. result = _data.f_fullname;
  294. }
  295. });
  296. return result;
  297. },
  298. filter_sex: function (value) {
  299. if (value == "1") {
  300. return '<div class="laySec1Sex" style="background:#7070da"><img src="/Content/images/floor/inSec1-10_2.png" alt="" />男生宿舍</div></div>'
  301. } else {
  302. return '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>'
  303. }
  304. },
  305. allocation: function () {
  306. top.learun.layerForm({
  307. id: 'form',
  308. title: '自动分配宿舍',
  309. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Allocation',
  310. width: 400,
  311. height: 250,
  312. callBack: function (id) {
  313. return top[id].acceptClick(refreshGirdData);
  314. }
  315. });
  316. },
  317. addFloor: function () {
  318. var url = "";
  319. url = top.$.rootUrl + '/LogisticsManagement/Accommodation/Form?ParentID=' + this.dormitoryID + '&ParentName=' + this.dormitoryName;
  320. top.learun.layerForm({
  321. id: 'form',
  322. title: '新增',
  323. url: url,
  324. width: 600,
  325. height: 400,
  326. callBack: function (id) {
  327. return top[id].acceptClick(this.laterGetData());
  328. }.bind(this)
  329. });
  330. },
  331. update: function (id) {
  332. top.learun.layerForm({
  333. id: 'form',
  334. title: '编辑',
  335. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Form?keyValue=' + id,
  336. width: 600,
  337. height: 400,
  338. callBack: function (id) {
  339. return top[id].acceptClick(this.laterGetData());
  340. }.bind(this)
  341. });
  342. },
  343. deleteFloor: function (floor) {
  344. top.learun.layerConfirm('是否确认删除该项!', function (res) {
  345. if (res) {
  346. this.floors.splice($.inArray(floor, this.floors), 1);
  347. top.learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/Accommodation/DeleteForm', { keyValue: floor.dormitory.ID }, function () {
  348. });
  349. }
  350. }.bind(this));
  351. },
  352. checkDetail: function (floor) {
  353. var echarts1;
  354. //圆形图
  355. var i = 0;
  356. var g = (floor.HasStudentNum / floor.BedNum) * 100 + "%";
  357. layer.open({
  358. type: 1,
  359. closeBtn: 2,
  360. area: ['888px', '80%'],
  361. content: '<div class="layerBox unitLayer">' +
  362. '<div class="layer_sec1 layer_sec">' +
  363. '<div class="laySec1L">' +
  364. '<div class="laySec1ConT">' + floor.dormitory.Name + this.filter_sex(floor.dormitory.Sex) +
  365. '</div>' +
  366. '<div class="laySec1R">' +
  367. '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + floor.dormitory.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + floor.dormitory.Phone + '</div></div>' +
  368. '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + this.filter_company(floor.dormitory.Campus) + '</div>' +
  369. '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + floor.dormitory.Address + '</div>' +
  370. '</div>' +
  371. '</div>' +
  372. '<div class="layer_sec layer_sec2">' +
  373. '<ul class="laySec2List">' +
  374. '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>' + floor.dormitory.Name + '</li>' +
  375. '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + floor.dormitory.Price + ' <i>元</i></li>' +
  376. '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>' + floor.floorNum + ' <i>层</i></li>' +
  377. '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>' + floor.HasStudentNum + ' <i>人</i></li>' +
  378. '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>' + floor.RoomNum + ' <i>间</i></li>' +
  379. '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>' + floor.NoStudentNum + ' <i>床</i></li>' +
  380. '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>' + floor.BedNum + ' <i>个</i></li>' +
  381. '<li><span>涉及院系</span>' + this.filter_Dept(floor.dormitory.Dept) + '</li>' +
  382. '<li><span>涉及专业</span>' + this.filter_Major(floor.dormitory.Major) + '</li>' +
  383. '</ul>' +
  384. '<div class="laySec2Btn">' +
  385. //'<a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  386. //'<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  387. //'<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  388. '</div>' +
  389. '</div>' +
  390. '<div class="layer_sec layer_sec2 layer_sec4">' +
  391. '<ul class="laySec2List">' +
  392. '<li><span>创 建 人 </span>' + floor.dormitory.CreateBy + '</li>' +
  393. '<li><span>创建时间 </span>' + floor.dormitory.CreateTime + '</li>' +
  394. '<li><span>更 新 人</span>' + floor.dormitory.UpdateBy + ' </li>' +
  395. '<li><span>更新时间</span>' + floor.dormitory.UpdateTime + ' </li>' +
  396. '</ul>' +
  397. '</div>' +
  398. '<img class="layerImg" src="/Content/images/floor/unit1-2.png" alt="" />' +
  399. '</div>',
  400. })
  401. }
  402. },
  403. created() {
  404. this.getData();
  405. },
  406. filters: {
  407. filter_sex: function (value) {
  408. return value == "1" ? "男生宿舍" : "女生宿舍";
  409. },
  410. filter_sexImg: function (value) {
  411. return value == "1" ? "/Content/images/floor/inSec1-10_2.png" : "/Content/images/floor/inSec1-10.png"
  412. },
  413. filter_style: function (value) {
  414. return value == "1" ? { background: '#7070da' } : {};
  415. },
  416. filter_url: function (value) {
  417. return "/LogisticsManagement/Accommodation/Corridor?ID=" + value;
  418. }
  419. }
  420. })
  421. </script>
  422. </body>