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.

Floor.cshtml 19 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. 
  2. @{
  3. ViewBag.Title = "Floor";
  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/bg.jpg');
  34. filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='/Content/images/floor/bg.jpg', sizingMethod='scale');
  35. overflow: auto;
  36. }
  37. .layerImg {
  38. top: -10px;
  39. left: -210px;
  40. width: 400px
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <!-- / warpper -->
  46. <div id="app" class="index_warpper floor_warpper">
  47. <!-- / index_sec1 -->
  48. <div class="index_sec index_sec1">
  49. <div class="index_box">
  50. <div class="indSec1T">
  51. @*山西省小店区高新校区*@
  52. <ul class="indSec1List">
  53. @*<li><a href="#" @@click="allocation()"><img src="/Content/images/floor/inSec1-6.png" alt="" />自动分配宿舍</a></li>*@
  54. <li><a href="#" @@click="addFloor()"><img src="/Content/images/floor/inSec1-7.png" alt="" />添加宿舍楼</a></li>
  55. @*<li><a href="#"><img src="/Content/images/floor/inSec1-8.png" alt="" />批量删除</a></li>*@
  56. @*<li><a href="#"><img src="/Content/images/floor/inSec1-9.png" alt="" />打印宿舍数据</a></li>*@
  57. </ul>
  58. </div>
  59. <div class="inSec1Row">
  60. <div v-for="floor in floors" class="inSec1Col3">
  61. <div class="inSec1Box">
  62. <div class="inSec1Top">
  63. <span>{{floor.dormitory.Name}}</span>
  64. <ul class="inSec1TopList">
  65. <li>
  66. <a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>
  67. <div class="inSec1Con inSec1Con1">
  68. <img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />
  69. <div class="inSec1Con2">
  70. <div class="inSec1ConT">
  71. {{floor.dormitory.Name}}
  72. @*<div class="inSec1Sex" :style="floor.dormitory.Sex | filter_style"><img :src="floor.dormitory.Sex | filter_sexImg" alt="" />{{floor.dormitory.Sex | filter_sex}}</div>*@
  73. </div>
  74. <div class="inSec1ConTxt">
  75. <span>{{floor.UnitNum}}</span>单元 <span>{{floor.floorNum}}</span>层 <span>{{floor.RoomNum}}</span>间
  76. </div>
  77. <div class="inSec1ConTxt">
  78. <span>{{floor.BedNum}}</span>床位 &nbsp;&nbsp;&nbsp;&nbsp; 入住<span>{{floor.HasStudentNum}}</span>人
  79. </div>
  80. <div @@click="checkDetail(floor)" class="inSec1Btn">查看更多信息 <i class="fa fa-angle-right"></i></div>
  81. </div>
  82. </div>
  83. </li>
  84. <li @@click="update(floor.dormitory.ID)"><a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>
  85. <li @@click="deleteFloor(floor)"><a href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>
  86. </ul>
  87. <div class="clear"></div>
  88. </div>
  89. <div class="inSec1Img">
  90. <a :href="floor.dormitory.ID | filter_url"><img src="/Content/images/floor/inSec1-4.png" alt="" /></a>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. </div>
  97. <!-- / index_sec1 -->
  98. </div>
  99. <!-- / warpper -->
  100. <script>
  101. var color1 = ['#6471F3', '#A4C2FF'], color2 = ['#94DB95', '#ED94A5'];
  102. var vm = new Vue({
  103. el: "#app",
  104. data: {
  105. floors: "",
  106. sexImgUrl: "/Content/images/floor/inSec1-10.png",
  107. },
  108. methods: {
  109. getData: function () {
  110. $.get('/LogisticsManagement/Accommodation/GetDormitoryList', function (ref) {
  111. this.floors = ref.data;
  112. }.bind(this), "json");
  113. },
  114. laterGetData: function () {
  115. setTimeout(function () {
  116. this.getData();
  117. }.bind(this), 1000);
  118. },
  119. filter_Dept: function (value) {
  120. var result = '';
  121. top.learun.clientdata.getAsync('custmerData', {
  122. sync: true,
  123. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
  124. key: value,
  125. keyId: 'deptno',
  126. callback: function (_data) {
  127. result = _data.deptname;
  128. }
  129. });
  130. return result;
  131. },
  132. filter_Major: function (value) {
  133. var result = '';
  134. top.learun.clientdata.getAsync('custmerData', {
  135. sync: true,
  136. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
  137. key: value,
  138. keyId: 'id',
  139. callback: function (_data) {
  140. result = _data.majorname;
  141. }
  142. });
  143. return result;
  144. },
  145. filter_company: function (value) {
  146. var result;
  147. top.learun.clientdata.getAsync('custmerData', {
  148. sync: true,
  149. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
  150. key: value,
  151. keyId: 'f_companyid',
  152. callback: function (_data) {
  153. result = _data.f_fullname;
  154. }
  155. });
  156. return result;
  157. },
  158. filter_sex: function (value) {
  159. if (value == "1") {
  160. return '<div class="laySec1Sex" style="background:#7070da"><img src="/Content/images/floor/inSec1-10_2.png" alt="" />男生宿舍</div></div>'
  161. } else {
  162. return '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>'
  163. }
  164. },
  165. allocation: function () {
  166. top.learun.layerForm({
  167. id: 'form',
  168. title: '自动分配宿舍',
  169. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Allocation',
  170. width: 400,
  171. height: 250,
  172. callBack: function (id) {
  173. return top[id].acceptClick();
  174. }
  175. });
  176. },
  177. addFloor: function () {
  178. var url = "";
  179. url = top.$.rootUrl + '/LogisticsManagement/Accommodation/FormClassify';
  180. top.learun.layerForm({
  181. id: 'form',
  182. title: '新增',
  183. url: url,
  184. width: 600,
  185. height: 400,
  186. callBack: function (id) {
  187. return top[id].acceptClick(this.laterGetData());
  188. }.bind(this)
  189. });
  190. },
  191. update: function (id) {
  192. top.learun.layerForm({
  193. id: 'form',
  194. title: '编辑',
  195. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/FormClassify?keyValue=' + id,
  196. width: 600,
  197. height: 400,
  198. callBack: function (id) {
  199. return top[id].acceptClick(this.laterGetData());
  200. }.bind(this)
  201. });
  202. },
  203. deleteFloor: function (floor) {
  204. top.learun.layerConfirm('是否确认删除该项!', function (res) {
  205. if (res) {
  206. this.floors.splice($.inArray(floor, this.floors), 1);
  207. top.learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/Accommodation/DeleteForm', { keyValue: floor.dormitory.ID }, function () {
  208. });
  209. }
  210. }.bind(this));
  211. },
  212. checkDetail: function (floor) {
  213. var echarts1;
  214. //圆形图
  215. var i = 0;
  216. var g = "0%";
  217. if (!!floor.HasStudentNum && !!floor.BedNum && floor.HasStudentNum != 0 && floor.BedNum != 0) {
  218. g = ((floor.HasStudentNum / floor.BedNum) * 100).toFixed(2) + "%";
  219. }
  220. layer.open({
  221. type: 1,
  222. closeBtn: 2,
  223. area: ['888px', '80%'],
  224. content: '<div class="layerBox">' +
  225. '<img class="layerImg" src="/Content/images/floor/inSec1-4.png" alt="" />' +
  226. '<div class="layer_sec1 layer_sec">' +
  227. '<div class="laySec1L">' +
  228. '<div class="laySec1ConT">' + floor.dormitory.Name +
  229. '<span style="display:none">' + this.filter_sex(floor.dormitory.Sex) + '</span>' +
  230. '</div>' +
  231. '<div class="laySec1R">' +
  232. '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + floor.dormitory.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + floor.dormitory.Phone + '</div></div>' +
  233. '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + this.filter_company(floor.dormitory.Campus) + '</div>' +
  234. '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + floor.dormitory.Address + '</div>' +
  235. '</div>' +
  236. '</div>' +
  237. '<div class="layer_sec layer_sec2">' +
  238. '<ul class="laySec2List">' +
  239. '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>' + floor.dormitory.DNo + '</li>' +
  240. '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + (floor.dormitory.Price == null ? '' : floor.dormitory.Price) + ' <i>元</i></li>' +
  241. '<li><span>单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;元</span>' + floor.UnitNum + ' <i>个</i></li>' +
  242. '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>' + floor.HasStudentNum + ' <i>人</i></li>' +
  243. '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>' + floor.floorNum + ' <i>层</i></li>' +
  244. '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>' + floor.NoStudentNum + ' <i>床</i></li>' +
  245. '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>' + floor.RoomNum + ' <i>间</i></li>' +
  246. //'<li><span>涉及院系</span>' + this.filter_Dept(floor.dormitory.Dept) + '</li>' +
  247. '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>' + floor.UnitNum + ' <i>个</i></li>' +
  248. // '<li><span>涉及专业</span>' + this.filter_Major(floor.dormitory.Major) + '</li>' +
  249. '</ul>' +
  250. '<div class="laySec2Btn">' +
  251. //'<a href="#"><img @@click="update(floor.dormitory.ID)" src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  252. //'<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  253. //'<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  254. '</div>' +
  255. '</div>' +
  256. '<div class="layer_sec layer_sec3">' +
  257. '<div class="layerSec3Box">' +
  258. '<div id="echarts1" style="width: 100%;height:300px;"></div>' +
  259. '</div>' +
  260. '<div class="layerSec3Box">' +
  261. '<div id="echarts2" style="width: 100%;height:300px;"></div>' +
  262. '</div>' +
  263. '</div>' +
  264. '<div class="layer_sec layer_sec2 layer_sec4">' +
  265. '<ul class="laySec2List">' +
  266. '<li><span>创 建 人 </span>' + floor.dormitory.CreateBy + '</li>' +
  267. '<li><span>创建时间 </span>' + floor.dormitory.CreateTime + '</li>' +
  268. '<li><span>更 新 人</span>' + floor.dormitory.UpdateBy + ' </li>' +
  269. '<li><span>更新时间</span>' + floor.dormitory.UpdateTime + ' </li>' +
  270. '</ul>' +
  271. '</div>' +
  272. '</div>',
  273. cancel: function () {
  274. echarts1.dispose();
  275. }
  276. })
  277. echarts1 = echarts.init(document.getElementById('echarts1'));
  278. echarts1.setOption({
  279. title: {
  280. text: '{a|' + g + '}\n{b|入住率}',
  281. x: 'center',
  282. y: 'center',
  283. textStyle: {
  284. rich: {
  285. a: {
  286. fontSize: '26',
  287. color: '#8F8F8F',
  288. lineHeight: 40
  289. },
  290. b: {
  291. fontSize: '16',
  292. color: '#B1B1B1'
  293. }
  294. }
  295. }
  296. },
  297. legend: {
  298. data: ['空床', '入住']
  299. },
  300. grid: {
  301. top: '5%',
  302. left: '2%',
  303. bottom: '10%',
  304. containLabel: true
  305. },
  306. tooltip: {
  307. show: true
  308. },
  309. series: [
  310. {
  311. name: '',
  312. type: 'pie',
  313. radius: ['50%', '70%'],
  314. avoidLabelOverlap: true,
  315. // 高亮偏移值
  316. hoverOffset: 5,
  317. label: {
  318. normal: {
  319. show: false
  320. }
  321. },
  322. labelLine: {
  323. normal: {
  324. show: false
  325. }
  326. },
  327. // highlight 自定义属性 有此属性该数据集保持高亮
  328. data: [{ value: floor.HasStudentNum, name: "入住" }, { value: floor.NoStudentNum, name: "空床" }],
  329. itemStyle: {
  330. normal: {
  331. color: function () {
  332. return color1[i++];
  333. }
  334. },
  335. },
  336. }
  337. ]
  338. });
  339. }
  340. },
  341. created() {
  342. this.getData();
  343. },
  344. filters: {
  345. filter_sex: function (value) {
  346. return value == "1" ? "男生宿舍" : "女生宿舍";
  347. },
  348. filter_sexImg: function (value) {
  349. return value == "1" ? "/Content/images/floor/inSec1-10_2.png" : "/Content/images/floor/inSec1-10.png"
  350. },
  351. filter_style: function (value) {
  352. return value == "1" ? { background: '#7070da' } : {};
  353. },
  354. filter_url: function (value) {
  355. return "/LogisticsManagement/Accommodation/Unit?ID=" + value + "&bbc=aa%26";
  356. }
  357. }
  358. })
  359. </script>
  360. </body>
  361. )